Skip to content
This repository was archived by the owner on Apr 4, 2023. It is now read-only.

Commit 7064729

Browse files
Bump Firebase SDK versions #1482
Sign In with Apple #1340
1 parent 744f46f commit 7064729

25 files changed

+3753
-3145
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33
- [Firebase iOS SDK Changelog](https://firebase.google.com/support/release-notes/ios)
44
- [Firebase Android SDK Changelog](https://firebase.google.com/support/release-notes/android)
55

6+
## 10.2.0 (2019, Nov xx)
7+
[Fixes & Enhancements](https://github.com/EddyVerbruggen/nativescript-plugin-firebase/milestone/115?closed=1)
8+
9+
610
## 10.1.1 (2019, Oct 29)
711
[Fixes & Enhancements](https://github.com/EddyVerbruggen/nativescript-plugin-firebase/milestone/114?closed=1)
812

demo-ng/app/tabs/firestore/firestore.component.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,7 @@ export class FirestoreComponent {
277277
}
278278

279279
firestoreDocumentObservable(): void {
280-
this.myCity$ = Observable.create(subscriber => {
280+
this.myCity$ = new Observable(subscriber => {
281281
const docRef: firestore.DocumentReference = firebase.firestore().collection("cities").doc("SF");
282282
docRef.onSnapshot(
283283
{includeMetadataChanges: true},
@@ -289,14 +289,15 @@ export class FirestoreComponent {
289289

290290
this.zone.run(() => {
291291
this.city = <City>doc.data();
292+
console.log("City name: " + this.city.name);
292293
subscriber.next(this.city);
293294
});
294295
});
295296
});
296297
}
297298

298299
firestoreCollectionObservable(): void {
299-
this.myCities$ = Observable.create(subscriber => {
300+
this.myCities$ = new Observable(subscriber => {
300301
const colRef: firestore.CollectionReference = firebase.firestore().collection("cities");
301302
colRef.onSnapshot(
302303
{includeMetadataChanges: true},

demo-ng/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
"nativescript-angular": "~8.0.3",
2626
"nativescript-camera": "~4.5.0",
2727
"nativescript-imagepicker": "~6.2.0",
28-
"nativescript-plugin-firebase": "file:../publish/package/nativescript-plugin-firebase-10.1.2.tgz",
28+
"nativescript-plugin-firebase": "file:../publish/package/nativescript-plugin-firebase-10.2.0.tgz",
2929
"nativescript-theme-core": "~1.0.6",
3030
"reflect-metadata": "~0.1.13",
3131
"rxjs": "~6.5.2",

demo-push/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
}
1010
},
1111
"dependencies": {
12-
"nativescript-plugin-firebase": "file:../publish/package/nativescript-plugin-firebase-10.1.2.tgz",
12+
"nativescript-plugin-firebase": "file:../publish/package/nativescript-plugin-firebase-10.2.0.tgz",
1313
"nativescript-theme-core": "~1.0.6",
1414
"nativescript-unit-test-runner": "0.7.0",
1515
"tns-core-modules": "~6.1.1"

demo-vue/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
}
1515
},
1616
"dependencies": {
17-
"nativescript-plugin-firebase": "file:../publish/package/nativescript-plugin-firebase-10.1.2.tgz",
17+
"nativescript-plugin-firebase": "file:../publish/package/nativescript-plugin-firebase-10.2.0.tgz",
1818
"nativescript-theme-core": "~1.0.6",
1919
"nativescript-vue": "~2.4.0",
2020
"tns-core-modules": "~6.1.1"

demo/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
},
1111
"dependencies": {
1212
"firebase-functions": "^2.0.5",
13-
"nativescript-plugin-firebase": "file:../publish/package/nativescript-plugin-firebase-10.1.2.tgz",
13+
"nativescript-plugin-firebase": "file:../publish/package/nativescript-plugin-firebase-10.2.0.tgz",
1414
"nativescript-theme-core": "^1.0.4",
1515
"nativescript-unit-test-runner": "0.7.0",
1616
"tns-core-modules": "~6.1.1"

publish/scripts/installer.js

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -353,6 +353,8 @@ function writePodFile(result) {
353353
// The MLVision pod requires a minimum of iOS 9, otherwise the build will fail
354354
(isPresent(result.ml_kit) ? `` : `#`) + `platform :ios, '9.0'
355355
356+
` + (!isSelected(result.external_push_client_only) ? `` : `#`) + `pod 'Firebase/Core', '~>6.13.0'
357+
356358
# Analytics
357359
` + (isSelected(result.analytics) || (!isSelected(result.external_push_client_only) && !isPresent(result.analytics)) ? `` : `#`) + `pod 'Firebase/Analytics'
358360
@@ -725,56 +727,56 @@ dependencies {
725727
726728
// make sure you have these versions by updating your local Android SDK's (Android Support repo and Google repo)
727729
728-
` + (isSelected(result.analytics) || (!isSelected(result.external_push_client_only) && !isPresent(result.analytics)) ? `` : `//`) + ` implementation "com.google.firebase:firebase-analytics:17.2.0"
730+
` + (isSelected(result.analytics) || (!isSelected(result.external_push_client_only) && !isPresent(result.analytics)) ? `` : `//`) + ` implementation "com.google.firebase:firebase-analytics:17.2.1"
729731
730732
// for reading google-services.json and configuration
731733
implementation "com.google.android.gms:play-services-base:$googlePlayServicesVersion"
732734
733735
// Authentication
734-
` + (isSelected(result.authentication) || (!isSelected(result.external_push_client_only) && !isPresent(result.authentication)) ? `` : `//`) + ` implementation "com.google.firebase:firebase-auth:19.0.0"
736+
` + (isSelected(result.authentication) || (!isSelected(result.external_push_client_only) && !isPresent(result.authentication)) ? `` : `//`) + ` implementation "com.google.firebase:firebase-auth:19.1.0"
735737
736738
// Realtime DB
737-
` + (isSelected(result.realtimedb) || (!isSelected(result.external_push_client_only) && !isPresent(result.realtimedb)) ? `` : `//`) + ` implementation "com.google.firebase:firebase-database:19.1.0"
739+
` + (isSelected(result.realtimedb) || (!isSelected(result.external_push_client_only) && !isPresent(result.realtimedb)) ? `` : `//`) + ` implementation "com.google.firebase:firebase-database:19.2.0"
738740
739741
// Cloud Firestore
740-
` + (isSelected(result.firestore) ? `` : `//`) + ` implementation "com.google.firebase:firebase-firestore:21.1.1"
742+
` + (isSelected(result.firestore) ? `` : `//`) + ` implementation "com.google.firebase:firebase-firestore:21.3.0"
741743
742744
// Remote Config
743-
` + (isSelected(result.remote_config) ? `` : `//`) + ` implementation "com.google.firebase:firebase-config:19.0.1"
745+
` + (isSelected(result.remote_config) ? `` : `//`) + ` implementation "com.google.firebase:firebase-config:19.0.3"
744746
745747
// Performance Monitoring
746-
` + (isSelected(result.performance_monitoring) ? `` : `//`) + ` implementation "com.google.firebase:firebase-perf:19.0.0"
748+
` + (isSelected(result.performance_monitoring) ? `` : `//`) + ` implementation "com.google.firebase:firebase-perf:19.0.2"
747749
748750
// Crashlytics
749751
` + (isSelected(result.crashlytics) ? `` : `//`) + ` implementation "com.crashlytics.sdk.android:crashlytics:2.10.1"
750752
751753
// Cloud Messaging (FCM)
752-
` + (isSelected(result.messaging) || isSelected(result.external_push_client_only) ? `` : `//`) + ` implementation "com.google.firebase:firebase-messaging:20.0.0"
754+
` + (isSelected(result.messaging) || isSelected(result.external_push_client_only) ? `` : `//`) + ` implementation "com.google.firebase:firebase-messaging:20.0.1"
753755
// ` + (isSelected(result.messaging) || isSelected(result.external_push_client_only) ? `` : `//`) + ` implementation "me.leolin:ShortcutBadger:1.1.22@aar"
754756
755757
// In-App Messaging
756-
` + (isSelected(result.in_app_messaging) ? `` : `//`) + ` implementation "com.google.firebase:firebase-inappmessaging-display:19.0.0"
758+
` + (isSelected(result.in_app_messaging) ? `` : `//`) + ` implementation "com.google.firebase:firebase-inappmessaging-display:19.0.2"
757759
// Analytics seems to be required for In-App Messaging
758-
` + (isSelected(result.in_app_messaging) && !isSelected(result.analytics) ? `` : `//`) + ` implementation "com.google.firebase:firebase-analytics:17.2.0"
760+
` + (isSelected(result.in_app_messaging) && !isSelected(result.analytics) ? `` : `//`) + ` implementation "com.google.firebase:firebase-analytics:17.2.1"
759761
760762
// Cloud Storage
761-
` + (isSelected(result.storage) ? `` : `//`) + ` implementation "com.google.firebase:firebase-storage:19.0.1"
763+
` + (isSelected(result.storage) ? `` : `//`) + ` implementation "com.google.firebase:firebase-storage:19.1.0"
762764
763765
// Cloud Functions
764766
` + (isSelected(result.functions) ? `` : `//`) + ` implementation "com.google.firebase:firebase-functions:19.0.1"
765767
766768
// AdMob / Ads
767-
` + (isSelected(result.admob) ? `` : `//`) + ` implementation "com.google.firebase:firebase-ads:18.2.0"
769+
` + (isSelected(result.admob) ? `` : `//`) + ` implementation "com.google.firebase:firebase-ads:18.3.0"
768770
769771
// ML Kit
770-
` + (isSelected(result.ml_kit) ? `` : `//`) + ` implementation "com.google.firebase:firebase-ml-vision:23.0.0"
771-
` + (isSelected(result.ml_kit_image_labeling) ? `` : `//`) + ` implementation "com.google.firebase:firebase-ml-vision-image-label-model:18.0.0"
772-
` + (isSelected(result.ml_kit_object_detection) ? `` : `//`) + ` implementation "com.google.firebase:firebase-ml-vision-object-detection-model:19.0.1"
773-
` + (isSelected(result.ml_kit_custom_model) ? `` : `//`) + ` implementation "com.google.firebase:firebase-ml-model-interpreter:21.0.0"
774-
` + (isSelected(result.ml_kit_natural_language_identification) || isSelected(result.ml_kit_natural_language_smartreply) || isSelected(result.ml_kit_natural_language_translation) ? `` : `//`) + ` implementation "com.google.firebase:firebase-ml-natural-language:21.0.2"
775-
` + (isSelected(result.ml_kit_natural_language_identification) ? `` : `//`) + ` implementation "com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.5"
776-
` + (isSelected(result.ml_kit_natural_language_translation) ? `` : `//`) + ` implementation "com.google.firebase:firebase-ml-natural-language-translate-model:20.0.5"
777-
` + (isSelected(result.ml_kit_natural_language_smartreply) ? `` : `//`) + ` implementation "com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.5"
772+
` + (isSelected(result.ml_kit) ? `` : `//`) + ` implementation "com.google.firebase:firebase-ml-vision:24.0.1"
773+
` + (isSelected(result.ml_kit_image_labeling) ? `` : `//`) + ` implementation "com.google.firebase:firebase-ml-vision-image-label-model:19.0.0"
774+
` + (isSelected(result.ml_kit_object_detection) ? `` : `//`) + ` implementation "com.google.firebase:firebase-ml-vision-object-detection-model:19.0.3"
775+
` + (isSelected(result.ml_kit_custom_model) ? `` : `//`) + ` implementation "com.google.firebase:firebase-ml-model-interpreter:22.0.1"
776+
` + (isSelected(result.ml_kit_natural_language_identification) || isSelected(result.ml_kit_natural_language_smartreply) || isSelected(result.ml_kit_natural_language_translation) ? `` : `//`) + ` implementation "com.google.firebase:firebase-ml-natural-language:22.0.0"
777+
` + (isSelected(result.ml_kit_natural_language_identification) ? `` : `//`) + ` implementation "com.google.firebase:firebase-ml-natural-language-language-id-model:20.0.7"
778+
` + (isSelected(result.ml_kit_natural_language_translation) ? `` : `//`) + ` implementation "com.google.firebase:firebase-ml-natural-language-translate-model:20.0.7"
779+
` + (isSelected(result.ml_kit_natural_language_smartreply) ? `` : `//`) + ` implementation "com.google.firebase:firebase-ml-natural-language-smart-reply-model:20.0.7"
778780
779781
// Facebook Authentication
780782
` + (isSelected(result.facebook_auth) ? `` : `//`) + ` implementation "com.facebook.android:facebook-core:5.4.0"

src/mlkit/custommodel/index.android.ts

Lines changed: 15 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -96,45 +96,31 @@ export class MLKitCustomModel extends MLKitCustomModelBase {
9696
const registeredModels = [];
9797

9898
function getInterpreter(localModelFile?: string): any {
99-
const firModelOptionsBuilder = new com.google.firebase.ml.custom.FirebaseModelOptions.Builder();
100-
10199
const localModelName = localModelFile.lastIndexOf("/") === -1 ? localModelFile : localModelFile.substring(localModelFile.lastIndexOf("/") + 1);
102100
let localModelRegistrationSuccess = false;
103101

104102
if (localModelFile) {
105-
if (registeredModels.indexOf(localModelName) > -1) {
106-
localModelRegistrationSuccess = true;
107-
firModelOptionsBuilder.setLocalModelName(localModelName)
108-
} else {
109-
const firModelLocalBuilder = new com.google.firebase.ml.common.modeldownload.FirebaseLocalModel.Builder(localModelName);
103+
const localModelBuilder = new com.google.firebase.ml.custom.FirebaseCustomLocalModel.Builder();
110104

111-
if (localModelFile.indexOf("~/") === 0) {
112-
firModelLocalBuilder.setFilePath(fs.knownFolders.currentApp().path + localModelFile.substring(1));
113-
} else {
114-
// note that this doesn't seem to work, let's advice users to use ~/ for now
115-
firModelLocalBuilder.setAssetFilePath(localModelFile);
116-
}
105+
// TODO use same for iOS, or is this not even required?
106+
// if (registeredModels.indexOf(localModelName) > -1) {
107+
// localModelRegistrationSuccess = true;
108+
// localModelBuilder.setFilePath(localModelFile);
117109

118-
localModelRegistrationSuccess = com.google.firebase.ml.common.modeldownload.FirebaseModelManager.getInstance().registerLocalModel(firModelLocalBuilder.build());
110+
// } else {
111+
// const firModelLocalBuilder = new com.google.firebase.ml.common.modeldownload.FirebaseLocalModel.Builder(localModelName);
119112

120-
if (localModelRegistrationSuccess) {
121-
registeredModels.push(localModelName);
122-
firModelOptionsBuilder.setLocalModelName(localModelName)
113+
if (localModelFile.indexOf("~/") === 0) {
114+
localModelBuilder.setFilePath(fs.knownFolders.currentApp().path + localModelFile.substring(1));
115+
} else {
116+
// note that this doesn't seem to work, let's advice users to use ~/ for now (TODO check if this is still te case)
117+
localModelBuilder.setAssetFilePath(localModelFile);
123118
}
124-
}
125-
}
126119

127-
// if (options.cloudModelName) {
128-
// firModelOptionsBuilder.setRemoteModelName(options.cloudModelName)
129-
// }
130-
131-
if (!localModelRegistrationSuccess) {
132-
// TODO handle this case upstream
133-
console.log("No (cloud or local) model was successfully loaded.");
134-
return null;
120+
const firModelOptions = new com.google.firebase.ml.custom.FirebaseModelInterpreterOptions.Builder(localModelBuilder.build()).build();
121+
return com.google.firebase.ml.custom.FirebaseModelInterpreter.getInstance(firModelOptions);
135122
}
136-
137-
return com.google.firebase.ml.custom.FirebaseModelInterpreter.getInstance(firModelOptionsBuilder.build());
123+
return null;
138124
}
139125

140126
export function useCustomModel(options: MLKitCustomModelOptions): Promise<MLKitCustomModelResult> {

src/mlkit/custommodel/index.ios.ts

Lines changed: 19 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -101,27 +101,23 @@ export class MLKitCustomModel extends MLKitCustomModelBase {
101101
}
102102

103103
function getInterpreter(localModelFile: string): FIRModelInterpreter {
104-
let localModelRegistrationSuccess = false;
105-
let cloudModelRegistrationSuccess = false;
106-
let localModelName;
107-
108104
if (localModelFile) {
109-
localModelName = localModelFile.lastIndexOf("/") === -1 ? localModelFile : localModelFile.substring(localModelFile.lastIndexOf("/") + 1);
105+
let localModelFilePath: string;
110106

111-
// make sure we load the model (with the same name) only once
112-
if (FIRModelManager.modelManager().localModelWithName(localModelName)) {
113-
localModelRegistrationSuccess = true;
107+
if (localModelFile.indexOf("~/") === 0) {
108+
localModelFilePath = fs.knownFolders.currentApp().path + localModelFile.substring(1);
114109
} else {
115-
let localModelFilePath: string;
116-
if (localModelFile.indexOf("~/") === 0) {
117-
localModelFilePath = fs.knownFolders.currentApp().path + localModelFile.substring(1);
118-
} else {
119-
localModelFilePath = NSBundle.mainBundle.pathForResourceOfType(
120-
localModelFile.substring(0, localModelFile.lastIndexOf(".")),
121-
localModelFile.substring(localModelFile.lastIndexOf(".") + 1));
122-
}
123-
const localModelSource = FIRLocalModel.alloc().initWithNamePath(localModelName, localModelFilePath);
124-
localModelRegistrationSuccess = FIRModelManager.modelManager().registerLocalModel(localModelSource);
110+
localModelFilePath = NSBundle.mainBundle.pathForResourceOfType(
111+
localModelFile.substring(0, localModelFile.lastIndexOf(".")),
112+
localModelFile.substring(localModelFile.lastIndexOf(".") + 1));
113+
}
114+
115+
const localModel: FIRCustomLocalModel = FIRCustomLocalModel.alloc().initWithModelPath(localModelFilePath);
116+
117+
if (localModel) {
118+
return FIRModelInterpreter.modelInterpreterForLocalModel(localModel);
119+
} else {
120+
console.log("No (cloud or local) model was successfully loaded.");
125121
}
126122
}
127123

@@ -137,20 +133,14 @@ function getInterpreter(localModelFile: string): FIRModelInterpreter {
137133
138134
cloudModelRegistrationSuccess = FIRModelManager.modelManager().registerRemoteModel(fIRCloudModelSource);
139135
console.log("cloudModelRegistrationSuccess: " + cloudModelRegistrationSuccess);
140-
}
141-
*/
142136
143-
if (!localModelRegistrationSuccess && !cloudModelRegistrationSuccess) {
144-
// TODO handle this case upstream
145-
console.log("No (cloud or local) model was successfully loaded.");
146-
return null;
137+
const fIRModelOptions = FIRModelOptions.alloc().initWithRemoteModelNameLocalModelName(
138+
null, // cloudModelRegistrationSuccess ? cloudModelName : null,
139+
localModelRegistrationSuccess ? localModelName : null);
147140
}
141+
*/
148142

149-
const fIRModelOptions = FIRModelOptions.alloc().initWithRemoteModelNameLocalModelName(
150-
null, // cloudModelRegistrationSuccess ? cloudModelName : null,
151-
localModelRegistrationSuccess ? localModelName : null);
152-
153-
return FIRModelInterpreter.modelInterpreterWithOptions(fIRModelOptions);
143+
return null;
154144
}
155145

156146
export function useCustomModel(options: MLKitCustomModelOptions): Promise<MLKitCustomModelResult> {

src/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "nativescript-plugin-firebase",
3-
"version": "10.1.2",
3+
"version": "10.2.0",
44
"description": "Fire. Base. Firebase!",
55
"main": "firebase",
66
"typings": "index.d.ts",
@@ -77,7 +77,7 @@
7777
"generate.typings.android.dynamiclinks": "npm run generate.typings.android --nativescript-plugin-firebase:typings=dynamiclinks --nativescript-plugin-firebase:typingsproject=demo",
7878
"generate.typings.android.firestore": "npm run generate.typings.android --nativescript-plugin-firebase:typings=firestore",
7979
"generate.typings.android.messaging": "npm run generate.typings.android --nativescript-plugin-firebase:typings=messaging",
80-
"generate.typings.android.playservices": "npm run generate.typings.android --nativescript-plugin-firebase:typings=playservices",
80+
"generate.typings.android.playservices.gms": "npm run generate.typings.android --nativescript-plugin-firebase:typings=playservices/gms",
8181
"generate.typings.android.remoteconfig": "npm run generate.typings.android --nativescript-plugin-firebase:typings=remoteconfig",
8282
"generate.typings.android.storage": "npm run generate.typings.android --nativescript-plugin-firebase:typings=storage",
8383
"generate.typings.android.functions": "npm run generate.typings.android --nativescript-plugin-firebase:typings=functions",

0 commit comments

Comments
 (0)