From c8878495ad10663b54b182a07227f533359cb80e Mon Sep 17 00:00:00 2001 From: Osei Fortune Date: Wed, 16 Sep 2026 12:33:21 -0400 Subject: [PATCH 1/2] feat: v6 - Remove firebase-dynamic-links (Dynamic Links shut down 2025-08-25) - Add firebase-ai package and demos - Migrate iOS dependency management from CocoaPods to Swift Package Manager - Bump iOS deployment target to 15.0, Android compileSdk/targetSdk to 35 - Bump Firebase iOS/Android SDK and related Gradle plugin versions --- README.md | 14 +- apps/demo-angular/package.json | 2 +- apps/demo-angular/src/app-routing.module.ts | 2 +- apps/demo-angular/src/home.component.ts | 6 +- .../plugin-demos/firebase-ai.component.html | 10 + .../src/plugin-demos/firebase-ai.component.ts | 16 + .../src/plugin-demos/firebase-ai.module.ts | 10 + .../firebase-dynamic-links.component.html | 8 - .../firebase-dynamic-links.component.ts | 19 - .../firebase-dynamic-links.module.ts | 10 - apps/demo-angular/tsconfig.json | 2 +- apps/demo-vue/app/app.ts | 7 - apps/demo-vue/app/components/Home.vue | 16 +- .../demo-vue/app/plugin-demos/firebase-ai.vue | 26 + .../plugin-demos/firebase-dynamic-links.vue | 34 - apps/demo-vue/package.json | 4 +- apps/demo-vue/tsconfig.json | 2 +- apps/demo/nativescript.config.ts | 12 + apps/demo/package.json | 6 +- apps/demo/src/app.ts | 7 - apps/demo/src/main-view-model.ts | 6 +- apps/demo/src/plugin-demos/firebase-ai.ts | 9 + apps/demo/src/plugin-demos/firebase-ai.xml | 15 + .../plugin-demos/firebase-dynamic-links.ts | 30 - .../plugin-demos/firebase-dynamic-links.xml | 14 - apps/demo/tsconfig.json | 2 +- package.json | 2 +- packages/firebase-ai/README.md | 176 + packages/firebase-ai/common.ts | 33 + packages/firebase-ai/index.android.ts | 354 + packages/firebase-ai/index.d.ts | 140 + packages/firebase-ai/index.ios.ts | 184 + packages/firebase-ai/nativescript.config.ts | 14 + .../package.json | 13 +- .../platforms/android/include.gradle | 7 + .../platforms/ios/src/NSCFirebaseAI.swift | 266 + .../project.json | 27 +- .../references.d.ts | 0 packages/firebase-ai/tsconfig.json | 9 + packages/firebase-ai/typings/android.d.ts | 5889 +++ packages/firebase-ai/typings/index.d.ts | 2 + .../typings/objc!NSCFirebaseAI.d.ts | 33 + packages/firebase-analytics/README.md | 25 +- .../hooks/before-checkForChanges.ts | 38 - packages/firebase-analytics/hooks/index.ts | 2 - .../firebase-analytics/hooks/tsconfig.json | 18 - packages/firebase-analytics/index.d.ts | 2 +- .../firebase-analytics/nativescript.config.ts | 17 + packages/firebase-analytics/package.json | 11 +- .../platforms/android/include.gradle | 2 +- .../firebase-analytics/platforms/ios/Podfile | 13 - packages/firebase-analytics/project.json | 3 +- packages/firebase-analytics/tsconfig.json | 2 +- .../firebase-analytics/typings/android.d.ts | 1644 +- packages/firebase-app-check-debug/README.md | 2 +- packages/firebase-app-check-debug/index.d.ts | 4 +- .../nativescript.config.ts | 14 + .../firebase-app-check-debug/package.json | 2 +- .../platforms/android/include.gradle | 2 +- .../platforms/ios/Podfile | 2 - .../firebase-app-check-debug/project.json | 1 + .../firebase-app-check-debug/tsconfig.json | 14 +- .../typings/android.d.ts | 1725 +- .../typings/objc!FirebaseAppCheck.d.ts | 151 +- packages/firebase-app-check/README.md | 2 +- packages/firebase-app-check/index.d.ts | 2 +- .../firebase-app-check/nativescript.config.ts | 14 + packages/firebase-app-check/package.json | 2 +- .../platforms/android/include.gradle | 2 +- .../firebase-app-check/platforms/ios/Podfile | 2 - packages/firebase-app-check/project.json | 1 + packages/firebase-app-check/tsconfig.json | 14 +- .../firebase-app-check/typings/android.d.ts | 1535 +- .../typings/objc!FirebaseAppCheck.d.ts | 151 +- packages/firebase-auth/index.android.ts | 119 +- packages/firebase-auth/index.d.ts | 21 +- packages/firebase-auth/index.ios.ts | 127 +- packages/firebase-auth/nativescript.config.ts | 14 + packages/firebase-auth/package.json | 2 +- .../platforms/android/include.gradle | 2 +- packages/firebase-auth/platforms/ios/Podfile | 2 - packages/firebase-auth/project.json | 1 + packages/firebase-auth/tsconfig.json | 14 +- packages/firebase-auth/typings/android.d.ts | 36460 ++++++++++------ .../typings/objc!FirebaseAuth.d.ts | 133 +- packages/firebase-core/README.md | 45 +- packages/firebase-core/index.android.ts | 31 +- packages/firebase-core/index.d.ts | 18 +- packages/firebase-core/index.ios.ts | 65 +- packages/firebase-core/nativescript.config.ts | 14 + packages/firebase-core/package.json | 2 +- .../platforms/android/buildscript.gradle | 2 +- .../platforms/android/include.gradle | 9 +- packages/firebase-core/platforms/ios/Podfile | 11 - packages/firebase-core/project.json | 1 + packages/firebase-core/tsconfig.json | 14 +- packages/firebase-core/typings/android.d.ts | 792 +- .../typings/objc!FirebaseCore.d.ts | 6 - .../typings/objc!FirebaseCoreExtension.d.ts | 9 - packages/firebase-crashlytics/index.d.ts | 2 +- .../nativescript.config.ts | 14 + packages/firebase-crashlytics/package.json | 2 +- .../platforms/android/buildscript.gradle | 2 +- .../platforms/android/include.gradle | 2 +- .../platforms/ios/Podfile | 2 - packages/firebase-crashlytics/project.json | 1 + packages/firebase-crashlytics/tsconfig.json | 14 +- .../firebase-crashlytics/typings/android.d.ts | 5204 ++- packages/firebase-database/index.d.ts | 8 +- packages/firebase-database/index.ios.ts | 4 +- .../firebase-database/nativescript.config.ts | 14 + packages/firebase-database/package.json | 2 +- .../platforms/android/include.gradle | 2 +- .../firebase-database/platforms/ios/Podfile | 2 - packages/firebase-database/project.json | 1 + packages/firebase-database/tsconfig.json | 14 +- .../firebase-database/typings/android.d.ts | 6950 +-- .../typings/objc!FirebaseDatabase.d.ts | 41 +- .../firebase-dynamic-links/.eslintrc.json | 18 - packages/firebase-dynamic-links/README.md | 546 - packages/firebase-dynamic-links/common.ts | 79 - .../firebase-dynamic-links/index.android.ts | 563 - packages/firebase-dynamic-links/index.d.ts | 121 - packages/firebase-dynamic-links/index.ios.ts | 543 - .../android/firebase_dynamic_links.aar | Bin 7919 -> 0 bytes .../platforms/android/include.gradle | 6 - .../dynamic_links/FirebaseDynamicLinks.kt | 180 - .../platforms/ios/Podfile | 3 - .../TNSFirebaseDynamicLinksAppDelegate.swift | 149 - .../ios/src/TNSFirebaseDynamicLinksLoader.h | 5 - .../ios/src/TNSFirebaseDynamicLinksLoader.m | 11 - .../platforms/ios/src/module.modulemap | 5 - packages/firebase-dynamic-links/tsconfig.json | 9 - .../typings/android.d.ts | 634 - .../firebase-dynamic-links/typings/index.d.ts | 4 - .../typings/objc!FirebaseDynamicLinks.d.ts | 237 - .../typings/objc!GoogleUtilities.d.ts | 454 - ...g.nativescript.firebase.dynamic_links.d.ts | 71 - packages/firebase-firestore/index.d.ts | 6 +- .../firebase-firestore/nativescript.config.ts | 14 + packages/firebase-firestore/package.json | 2 +- .../platforms/android/include.gradle | 2 +- .../firebase-firestore/platforms/ios/Podfile | 2 - packages/firebase-firestore/project.json | 1 + packages/firebase-firestore/tsconfig.json | 14 +- .../firebase-firestore/typings/android.d.ts | 21127 ++++++--- .../typings/objc!FirebaseCore.d.ts | 6 - .../objc!FirebaseFirestoreInternal.d.ts | 418 + packages/firebase-functions/index.d.ts | 5 +- .../firebase-functions/nativescript.config.ts | 14 + packages/firebase-functions/package.json | 2 +- .../platforms/android/include.gradle | 2 +- .../firebase-functions/platforms/ios/Podfile | 2 - packages/firebase-functions/project.json | 1 + packages/firebase-functions/tsconfig.json | 14 +- .../firebase-functions/typings/android.d.ts | 2321 +- packages/firebase-in-app-messaging/index.d.ts | 2 +- .../nativescript.config.ts | 14 + .../firebase-in-app-messaging/package.json | 2 +- .../platforms/android/include.gradle | 2 +- .../platforms/ios/Podfile | 2 - .../firebase-in-app-messaging/project.json | 1 + .../firebase-in-app-messaging/tsconfig.json | 14 +- .../typings/android.d.ts | 9301 ++-- .../typings/objc!FirebaseInAppMessaging.d.ts | 3 - packages/firebase-installations/index.d.ts | 2 +- .../nativescript.config.ts | 14 + packages/firebase-installations/package.json | 2 +- .../platforms/android/include.gradle | 2 +- .../platforms/ios/Podfile | 2 - packages/firebase-installations/project.json | 1 + packages/firebase-installations/tsconfig.json | 14 +- .../typings/android.d.ts | 1301 +- packages/firebase-messaging-core/index.ios.ts | 1 - .../nativescript.config.ts | 14 + packages/firebase-messaging-core/package.json | 2 +- .../platforms/android/buildscript.gradle | 2 +- .../platforms/android/include.gradle | 2 +- .../platforms/ios/Podfile | 1 - .../ios/src/NSCUIApplicationDelegate.swift | 5 + packages/firebase-messaging-core/project.json | 1 + .../firebase-messaging-core/tsconfig.json | 2 +- .../typings/android.d.ts | 1901 +- .../objc!NSCFirebaseMessagingCore.d.ts | 10 +- packages/firebase-messaging/index.android.ts | 18 +- packages/firebase-messaging/index.d.ts | 2 +- packages/firebase-messaging/index.ios.ts | 18 +- .../firebase-messaging/nativescript.config.ts | 14 + packages/firebase-messaging/package.json | 4 +- .../platforms/android/include.gradle | 2 +- .../firebase-messaging/platforms/ios/Podfile | 2 - .../ios/src/NSCFIRMessagingDelegate.swift | 5 + packages/firebase-messaging/project.json | 1 + packages/firebase-messaging/tsconfig.json | 14 +- .../firebase-messaging/typings/android.d.ts | 1924 +- .../typings/objc!FirebaseMessaging.d.ts | 12 + .../typings/objc!GoogleUtilities.d.ts | 295 +- .../objc!NSCFirebaseMessagingCore.d.ts | 10 +- packages/firebase-performance/index.d.ts | 2 +- .../nativescript.config.ts | 14 + packages/firebase-performance/package.json | 2 +- .../platforms/android/buildscript.gradle | 3 +- .../platforms/android/include.gradle | 3 +- .../platforms/ios/Podfile | 2 - packages/firebase-performance/project.json | 1 + packages/firebase-performance/tsconfig.json | 14 +- .../firebase-performance/typings/android.d.ts | 3378 +- packages/firebase-remote-config/index.d.ts | 2 +- packages/firebase-remote-config/index.ios.ts | 2 +- .../nativescript.config.ts | 14 + packages/firebase-remote-config/package.json | 2 +- .../platforms/android/include.gradle | 2 +- .../platforms/ios/Podfile | 2 - packages/firebase-remote-config/project.json | 1 + packages/firebase-remote-config/tsconfig.json | 14 +- .../typings/android.d.ts | 1751 +- .../typings/objc!FirebaseRemoteConfig.d.ts | 12 + packages/firebase-storage/index.d.ts | 2 +- packages/firebase-storage/index.ios.ts | 3 +- .../firebase-storage/nativescript.config.ts | 14 + packages/firebase-storage/package.json | 2 +- .../platforms/android/include.gradle | 2 +- .../firebase-storage/platforms/ios/Podfile | 2 - packages/firebase-storage/project.json | 1 + packages/firebase-storage/tsconfig.json | 14 +- .../firebase-storage/typings/android.d.ts | 1560 +- .../typings/objc!FirebaseStorage.d.ts | 39 +- packages/firebase-ui/README.md | 44 + packages/firebase-ui/index.android.ts | 75 +- packages/firebase-ui/index.d.ts | 22 +- packages/firebase-ui/index.ios.ts | 60 +- packages/firebase-ui/nativescript.config.ts | 17 + packages/firebase-ui/package.json | 2 +- .../platforms/android/include.gradle | 2 +- packages/firebase-ui/platforms/ios/Podfile | 2 - packages/firebase-ui/project.json | 1 + packages/firebase-ui/tsconfig.json | 2 +- packages/firebase-ui/typings/android.d.ts | 24661 ++++++++++- .../typings/objc!FirebaseAuth.d.ts | 133 +- tools/assets/App_Resources/Android/app.gradle | 4 +- tools/assets/App_Resources/iOS/Podfile | 8 - tools/assets/App_Resources/iOS/build.xcconfig | 2 +- tools/demo/firebase-ai/index.ts | 37 + tools/demo/firebase-dynamic-links/index.ts | 9 - tools/demo/index.ts | 2 +- tools/workspace-scripts.js | 22 +- tsconfig.base.json | 2 +- 247 files changed, 98364 insertions(+), 39187 deletions(-) create mode 100644 apps/demo-angular/src/plugin-demos/firebase-ai.component.html create mode 100644 apps/demo-angular/src/plugin-demos/firebase-ai.component.ts create mode 100644 apps/demo-angular/src/plugin-demos/firebase-ai.module.ts delete mode 100644 apps/demo-angular/src/plugin-demos/firebase-dynamic-links.component.html delete mode 100644 apps/demo-angular/src/plugin-demos/firebase-dynamic-links.component.ts delete mode 100644 apps/demo-angular/src/plugin-demos/firebase-dynamic-links.module.ts create mode 100644 apps/demo-vue/app/plugin-demos/firebase-ai.vue delete mode 100644 apps/demo-vue/app/plugin-demos/firebase-dynamic-links.vue create mode 100644 apps/demo/src/plugin-demos/firebase-ai.ts create mode 100644 apps/demo/src/plugin-demos/firebase-ai.xml delete mode 100644 apps/demo/src/plugin-demos/firebase-dynamic-links.ts delete mode 100644 apps/demo/src/plugin-demos/firebase-dynamic-links.xml create mode 100644 packages/firebase-ai/README.md create mode 100644 packages/firebase-ai/common.ts create mode 100644 packages/firebase-ai/index.android.ts create mode 100644 packages/firebase-ai/index.d.ts create mode 100644 packages/firebase-ai/index.ios.ts create mode 100644 packages/firebase-ai/nativescript.config.ts rename packages/{firebase-dynamic-links => firebase-ai}/package.json (78%) create mode 100644 packages/firebase-ai/platforms/android/include.gradle create mode 100644 packages/firebase-ai/platforms/ios/src/NSCFirebaseAI.swift rename packages/{firebase-dynamic-links => firebase-ai}/project.json (52%) rename packages/{firebase-dynamic-links => firebase-ai}/references.d.ts (100%) create mode 100644 packages/firebase-ai/tsconfig.json create mode 100644 packages/firebase-ai/typings/android.d.ts create mode 100644 packages/firebase-ai/typings/index.d.ts create mode 100644 packages/firebase-ai/typings/objc!NSCFirebaseAI.d.ts delete mode 100644 packages/firebase-analytics/hooks/before-checkForChanges.ts delete mode 100644 packages/firebase-analytics/hooks/index.ts delete mode 100644 packages/firebase-analytics/hooks/tsconfig.json create mode 100644 packages/firebase-analytics/nativescript.config.ts delete mode 100644 packages/firebase-analytics/platforms/ios/Podfile create mode 100644 packages/firebase-app-check-debug/nativescript.config.ts delete mode 100644 packages/firebase-app-check-debug/platforms/ios/Podfile create mode 100644 packages/firebase-app-check/nativescript.config.ts delete mode 100644 packages/firebase-app-check/platforms/ios/Podfile create mode 100644 packages/firebase-auth/nativescript.config.ts delete mode 100644 packages/firebase-auth/platforms/ios/Podfile create mode 100644 packages/firebase-core/nativescript.config.ts delete mode 100644 packages/firebase-core/platforms/ios/Podfile create mode 100644 packages/firebase-crashlytics/nativescript.config.ts delete mode 100644 packages/firebase-crashlytics/platforms/ios/Podfile create mode 100644 packages/firebase-database/nativescript.config.ts delete mode 100644 packages/firebase-database/platforms/ios/Podfile delete mode 100644 packages/firebase-dynamic-links/.eslintrc.json delete mode 100644 packages/firebase-dynamic-links/README.md delete mode 100644 packages/firebase-dynamic-links/common.ts delete mode 100644 packages/firebase-dynamic-links/index.android.ts delete mode 100644 packages/firebase-dynamic-links/index.d.ts delete mode 100644 packages/firebase-dynamic-links/index.ios.ts delete mode 100644 packages/firebase-dynamic-links/platforms/android/firebase_dynamic_links.aar delete mode 100644 packages/firebase-dynamic-links/platforms/android/include.gradle delete mode 100644 packages/firebase-dynamic-links/platforms/android/java/org/nativescript/firebase/dynamic_links/FirebaseDynamicLinks.kt delete mode 100644 packages/firebase-dynamic-links/platforms/ios/Podfile delete mode 100644 packages/firebase-dynamic-links/platforms/ios/src/TNSFirebaseDynamicLinksAppDelegate.swift delete mode 100644 packages/firebase-dynamic-links/platforms/ios/src/TNSFirebaseDynamicLinksLoader.h delete mode 100644 packages/firebase-dynamic-links/platforms/ios/src/TNSFirebaseDynamicLinksLoader.m delete mode 100644 packages/firebase-dynamic-links/platforms/ios/src/module.modulemap delete mode 100644 packages/firebase-dynamic-links/tsconfig.json delete mode 100644 packages/firebase-dynamic-links/typings/android.d.ts delete mode 100644 packages/firebase-dynamic-links/typings/index.d.ts delete mode 100644 packages/firebase-dynamic-links/typings/objc!FirebaseDynamicLinks.d.ts delete mode 100644 packages/firebase-dynamic-links/typings/objc!GoogleUtilities.d.ts delete mode 100644 packages/firebase-dynamic-links/typings/org.nativescript.firebase.dynamic_links.d.ts create mode 100644 packages/firebase-firestore/nativescript.config.ts delete mode 100644 packages/firebase-firestore/platforms/ios/Podfile create mode 100644 packages/firebase-functions/nativescript.config.ts delete mode 100644 packages/firebase-functions/platforms/ios/Podfile create mode 100644 packages/firebase-in-app-messaging/nativescript.config.ts delete mode 100644 packages/firebase-in-app-messaging/platforms/ios/Podfile create mode 100644 packages/firebase-installations/nativescript.config.ts delete mode 100644 packages/firebase-installations/platforms/ios/Podfile create mode 100644 packages/firebase-messaging-core/nativescript.config.ts delete mode 100644 packages/firebase-messaging-core/platforms/ios/Podfile create mode 100644 packages/firebase-messaging/nativescript.config.ts delete mode 100644 packages/firebase-messaging/platforms/ios/Podfile create mode 100644 packages/firebase-performance/nativescript.config.ts delete mode 100644 packages/firebase-performance/platforms/ios/Podfile create mode 100644 packages/firebase-remote-config/nativescript.config.ts delete mode 100644 packages/firebase-remote-config/platforms/ios/Podfile create mode 100644 packages/firebase-storage/nativescript.config.ts delete mode 100644 packages/firebase-storage/platforms/ios/Podfile create mode 100644 packages/firebase-ui/nativescript.config.ts delete mode 100644 packages/firebase-ui/platforms/ios/Podfile delete mode 100644 tools/assets/App_Resources/iOS/Podfile create mode 100644 tools/demo/firebase-ai/index.ts delete mode 100644 tools/demo/firebase-dynamic-links/index.ts diff --git a/README.md b/README.md index d3d3c572..a9815f67 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,4 @@ +- [@nativescript/firebase-ai](packages/firebase-ai/README.md) - [@nativescript/firebase-analytics](packages/firebase-analytics/README.md) - [@nativescript/firebase-app-check](packages/firebase-app-check/README.md) - [@nativescript/firebase-app-check-debug](packages/firebase-app-check-debug/README.md) @@ -5,7 +6,6 @@ - [@nativescript/firebase-core](packages/firebase-core/README.md) - [@nativescript/firebase-crashlytics](packages/firebase-crashlytics/README.md) - [@nativescript/firebase-database](packages/firebase-database/README.md) -- [@nativescript/firebase-dynamic-links](packages/firebase-dynamic-links/README.md) - [@nativescript/firebase-firestore](packages/firebase-firestore/README.md) - [@nativescript/firebase-functions](packages/firebase-functions/README.md) - [@nativescript/firebase-in-app-messaging](packages/firebase-in-app-messaging/README.md) @@ -17,6 +17,18 @@ - [@nativescript/firebase-storage](packages/firebase-storage/README.md) - [@nativescript/firebase-ui](packages/firebase-ui/README.md) +## Requirements + +The 6.x suite tracks Firebase iOS `12.19.x` and the Firebase Android BOM `34.19.0`, which require an +iOS deployment target of **15.0**, an Android `minSdkVersion` of **23** and a `compileSdkVersion` +of **35**. + +iOS dependencies are pulled with **Swift Package Manager** rather than CocoaPods, which needs +**NativeScript CLI 8.9.0 or newer** (9.0.3 if you want to override a plugin's package from your own +config). See +[@nativescript/firebase-core](packages/firebase-core/README.md#requirements) for the details and +where to set each value. + # How to use? This workspace manages the suite of plugins listed above. diff --git a/apps/demo-angular/package.json b/apps/demo-angular/package.json index 4d885186..056ea0ea 100644 --- a/apps/demo-angular/package.json +++ b/apps/demo-angular/package.json @@ -6,6 +6,7 @@ "@nativescript/firebase-auth": "file:../../dist/packages/firebase-auth", "@nativescript/firebase-database": "file:../../dist/packages/firebase-database", "@nativescript/firebase-firestore": "file:../../dist/packages/firebase-firestore", + "@nativescript/firebase-ai": "file:../../packages/firebase-ai", "@nativescript/firebase-analytics": "file:../../dist/packages/firebase-analytics", "@nativescript/firebase-crashlytics": "file:../../dist/packages/firebase-crashlytics", "@nativescript/firebase-app-check": "file:../../dist/packages/firebase-app-check", @@ -14,7 +15,6 @@ "@nativescript/firebase-in-app-messaging": "file:../../dist/packages/firebase-in-app-messaging", "@nativescript/firebase-performance": "file:../../dist/packages/firebase-performance", "@nativescript/firebase-installations": "file:../../dist/packages/firebase-installations", - "@nativescript/firebase-dynamic-links": "file:../../dist/packages/firebase-dynamic-links", "@nativescript/firebase-messaging": "file:../../dist/packages/firebase-messaging", "@nativescript/firebase-functions": "file:../../dist/packages/firebase-functions", "@nativescript/firebase-app-check-debug": "file:../../dist/packages/firebase-app-check-debug", diff --git a/apps/demo-angular/src/app-routing.module.ts b/apps/demo-angular/src/app-routing.module.ts index 131105c9..bc8c7ab0 100644 --- a/apps/demo-angular/src/app-routing.module.ts +++ b/apps/demo-angular/src/app-routing.module.ts @@ -7,6 +7,7 @@ import { HomeComponent } from './home.component'; const routes: Routes = [ { path: '', redirectTo: '/home', pathMatch: 'full' }, { path: 'home', component: HomeComponent }, + { path: 'firebase-ai', loadChildren: () => import('./plugin-demos/firebase-ai.module').then((m) => m.FirebaseAiModule) }, { path: 'firebase-analytics', loadChildren: () => import('./plugin-demos/firebase-analytics.module').then((m) => m.FirebaseAnalyticsModule) }, { path: 'firebase-app-check', loadChildren: () => import('./plugin-demos/firebase-app-check.module').then((m) => m.FirebaseAppCheckModule) }, { path: 'firebase-app-check-debug', loadChildren: () => import('./plugin-demos/firebase-app-check-debug.module').then((m) => m.FirebaseAppCheckDebugModule) }, @@ -14,7 +15,6 @@ const routes: Routes = [ { path: 'firebase-core', loadChildren: () => import('./plugin-demos/firebase-core.module').then((m) => m.FirebaseCoreModule) }, { path: 'firebase-crashlytics', loadChildren: () => import('./plugin-demos/firebase-crashlytics.module').then((m) => m.FirebaseCrashlyticsModule) }, { path: 'firebase-database', loadChildren: () => import('./plugin-demos/firebase-database.module').then((m) => m.FirebaseDatabaseModule) }, - { path: 'firebase-dynamic-links', loadChildren: () => import('./plugin-demos/firebase-dynamic-links.module').then((m) => m.FirebaseDynamicLinksModule) }, { path: 'firebase-firestore', loadChildren: () => import('./plugin-demos/firebase-firestore.module').then((m) => m.FirebaseFirestoreModule) }, { path: 'firebase-functions', loadChildren: () => import('./plugin-demos/firebase-functions.module').then((m) => m.FirebaseFunctionsModule) }, { path: 'firebase-in-app-messaging', loadChildren: () => import('./plugin-demos/firebase-in-app-messaging.module').then((m) => m.FirebaseInAppMessagingModule) }, diff --git a/apps/demo-angular/src/home.component.ts b/apps/demo-angular/src/home.component.ts index ba58d650..f868adfc 100644 --- a/apps/demo-angular/src/home.component.ts +++ b/apps/demo-angular/src/home.component.ts @@ -6,6 +6,9 @@ import { Component } from '@angular/core'; }) export class HomeComponent { demos = [ + { + name: 'firebase-ai', + }, { name: 'firebase-analytics', }, @@ -27,9 +30,6 @@ export class HomeComponent { { name: 'firebase-database', }, - { - name: 'firebase-dynamic-links', - }, { name: 'firebase-firestore', }, diff --git a/apps/demo-angular/src/plugin-demos/firebase-ai.component.html b/apps/demo-angular/src/plugin-demos/firebase-ai.component.html new file mode 100644 index 00000000..7a2477c6 --- /dev/null +++ b/apps/demo-angular/src/plugin-demos/firebase-ai.component.html @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/apps/demo-angular/src/plugin-demos/firebase-ai.component.ts b/apps/demo-angular/src/plugin-demos/firebase-ai.component.ts new file mode 100644 index 00000000..c7860b91 --- /dev/null +++ b/apps/demo-angular/src/plugin-demos/firebase-ai.component.ts @@ -0,0 +1,16 @@ +import { Component, NgZone } from '@angular/core'; +import { DemoSharedFirebaseAi } from '@demo/shared'; + +@Component({ + selector: 'demo-firebase-ai', + templateUrl: 'firebase-ai.component.html', +}) +export class FirebaseAiComponent { + demoShared: DemoSharedFirebaseAi; + + constructor(private _ngZone: NgZone) {} + + ngOnInit() { + this.demoShared = new DemoSharedFirebaseAi(); + } +} diff --git a/apps/demo-angular/src/plugin-demos/firebase-ai.module.ts b/apps/demo-angular/src/plugin-demos/firebase-ai.module.ts new file mode 100644 index 00000000..75d9b6f9 --- /dev/null +++ b/apps/demo-angular/src/plugin-demos/firebase-ai.module.ts @@ -0,0 +1,10 @@ +import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core'; +import { NativeScriptCommonModule, NativeScriptRouterModule } from '@nativescript/angular'; +import { FirebaseAiComponent } from './firebase-ai.component'; + +@NgModule({ + imports: [NativeScriptCommonModule, NativeScriptRouterModule.forChild([{ path: '', component: FirebaseAiComponent }])], + declarations: [FirebaseAiComponent], + schemas: [NO_ERRORS_SCHEMA], +}) +export class FirebaseAiModule {} diff --git a/apps/demo-angular/src/plugin-demos/firebase-dynamic-links.component.html b/apps/demo-angular/src/plugin-demos/firebase-dynamic-links.component.html deleted file mode 100644 index 585b791c..00000000 --- a/apps/demo-angular/src/plugin-demos/firebase-dynamic-links.component.html +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/apps/demo-angular/src/plugin-demos/firebase-dynamic-links.component.ts b/apps/demo-angular/src/plugin-demos/firebase-dynamic-links.component.ts deleted file mode 100644 index b77759ae..00000000 --- a/apps/demo-angular/src/plugin-demos/firebase-dynamic-links.component.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { Component, NgZone } from '@angular/core'; -import { DemoSharedFirebaseDynamicLinks } from '@demo/shared'; -import { } from '@nativescript/firebase-dynamic-links'; - -@Component({ - selector: 'demo-firebase-dynamic-links', - templateUrl: 'firebase-dynamic-links.component.html', -}) -export class FirebaseDynamicLinksComponent { - - demoShared: DemoSharedFirebaseDynamicLinks; - - constructor(private _ngZone: NgZone) {} - - ngOnInit() { - this.demoShared = new DemoSharedFirebaseDynamicLinks(); - } - -} \ No newline at end of file diff --git a/apps/demo-angular/src/plugin-demos/firebase-dynamic-links.module.ts b/apps/demo-angular/src/plugin-demos/firebase-dynamic-links.module.ts deleted file mode 100644 index 9b468a17..00000000 --- a/apps/demo-angular/src/plugin-demos/firebase-dynamic-links.module.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core'; -import { NativeScriptCommonModule, NativeScriptRouterModule } from '@nativescript/angular'; -import { FirebaseDynamicLinksComponent } from './firebase-dynamic-links.component'; - -@NgModule({ - imports: [NativeScriptCommonModule, NativeScriptRouterModule.forChild([{ path: '', component: FirebaseDynamicLinksComponent }])], - declarations: [FirebaseDynamicLinksComponent], - schemas: [ NO_ERRORS_SCHEMA] -}) -export class FirebaseDynamicLinksModule {} diff --git a/apps/demo-angular/tsconfig.json b/apps/demo-angular/tsconfig.json index 6bcd3a50..8f60ecb6 100644 --- a/apps/demo-angular/tsconfig.json +++ b/apps/demo-angular/tsconfig.json @@ -8,6 +8,7 @@ "@nativescript/firebase-auth": ["packages/firebase-auth/index.d.ts"], "@nativescript/firebase-database": ["packages/firebase-database/index.d.ts"], "@nativescript/firebase-firestore": ["packages/firebase-firestore/index.d.ts"], + "@nativescript/firebase-ai": ["packages/firebase-ai/index.d.ts"], "@nativescript/firebase-analytics": ["packages/firebase-analytics/index.d.ts"], "@nativescript/firebase-crashlytics": ["packages/firebase-crashlytics/index.d.ts"], "@nativescript/firebase-app-check": ["packages/firebase-app-check/index.d.ts"], @@ -16,7 +17,6 @@ "@nativescript/firebase-in-app-messaging": ["packages/firebase-in-app-messaging/index.d.ts"], "@nativescript/firebase-performance": ["packages/firebase-performance/index.d.ts"], "@nativescript/firebase-installations": ["packages/firebase-installations/index.d.ts"], - "@nativescript/firebase-dynamic-links": ["packages/firebase-dynamic-links/index.d.ts"], "@nativescript/firebase-messaging": ["packages/firebase-messaging/index.d.ts"], "@nativescript/firebase-functions": ["packages/firebase-functions/index.d.ts"], "@nativescript/firebase-app-check-debug": ["packages/firebase-app-check-debug/index.d.ts"], diff --git a/apps/demo-vue/app/app.ts b/apps/demo-vue/app/app.ts index 6371f772..30be7b94 100644 --- a/apps/demo-vue/app/app.ts +++ b/apps/demo-vue/app/app.ts @@ -11,7 +11,6 @@ import '@nativescript/firebase-analytics'; import '@nativescript/firebase-auth'; import '@nativescript/firebase-crashlytics'; import '@nativescript/firebase-database'; -import '@nativescript/firebase-dynamic-links'; import '@nativescript/firebase-firestore'; import '@nativescript/firebase-functions'; import '@nativescript/firebase-in-app-messaging'; @@ -33,12 +32,6 @@ firebase() firebase().crashlytics().setCrashlyticsCollectionEnabled(true); }); -const dynamicLinks = firebase().dynamicLinks(); - -dynamicLinks.onLink((link) => { - console.log('onLink', link); -}); - Application.on('launch', (args) => { const messaging = firebase().messaging(); diff --git a/apps/demo-vue/app/components/Home.vue b/apps/demo-vue/app/components/Home.vue index 772d30bb..deecba49 100644 --- a/apps/demo-vue/app/components/Home.vue +++ b/apps/demo-vue/app/components/Home.vue @@ -18,6 +18,7 @@ diff --git a/apps/demo-vue/app/plugin-demos/firebase-dynamic-links.vue b/apps/demo-vue/app/plugin-demos/firebase-dynamic-links.vue deleted file mode 100644 index 5d0aa759..00000000 --- a/apps/demo-vue/app/plugin-demos/firebase-dynamic-links.vue +++ /dev/null @@ -1,34 +0,0 @@ - - - - - diff --git a/apps/demo-vue/package.json b/apps/demo-vue/package.json index 75f8005f..8e414832 100644 --- a/apps/demo-vue/package.json +++ b/apps/demo-vue/package.json @@ -3,13 +3,13 @@ "description": "NativeScript Application", "dependencies": { "@nativescript/core": "file:../../node_modules/@nativescript/core", + "@nativescript/firebase-ai": "file:../../packages/firebase-ai", "@nativescript/firebase-analytics": "file:../../dist/packages/firebase-analytics", "@nativescript/firebase-app-check": "file:../../packages/firebase-app-check", "@nativescript/firebase-auth": "file:../../packages/firebase-auth", "@nativescript/firebase-core": "file:../../packages/firebase-core", "@nativescript/firebase-crashlytics": "file:../../packages/firebase-crashlytics", "@nativescript/firebase-database": "file:../../packages/firebase-database", - "@nativescript/firebase-dynamic-links": "file:../../packages/firebase-dynamic-links", "@nativescript/firebase-firestore": "file:../../packages/firebase-firestore", "@nativescript/firebase-functions": "file:../../packages/firebase-functions", "@nativescript/firebase-in-app-messaging": "file:../../packages/firebase-in-app-messaging", @@ -20,7 +20,7 @@ "@nativescript/firebase-storage": "file:../../packages/firebase-storage", "@nativescript/firebase-app-check-debug": "file:../../packages/firebase-app-check-debug", "@nativescript/firebase-messaging-core": "file:../../packages/firebase-messaging-core", - "@nativescript/firebase-ui": "file:../../packages/firebase-ui" + "@nativescript/firebase-ui": "file:../../dist/packages/firebase-ui" }, "devDependencies": { "@nativescript/android": "~8.8.0", diff --git a/apps/demo-vue/tsconfig.json b/apps/demo-vue/tsconfig.json index e02a8e7a..dbc2eb31 100644 --- a/apps/demo-vue/tsconfig.json +++ b/apps/demo-vue/tsconfig.json @@ -10,6 +10,7 @@ "@nativescript/firebase-auth": ["../../packages/firebase-auth/index.d.ts"], "@nativescript/firebase-database": ["../../packages/firebase-database/index.d.ts"], "@nativescript/firebase-firestore": ["../../packages/firebase-firestore/index.d.ts"], + "@nativescript/firebase-ai": ["../../packages/firebase-ai/index.d.ts"], "@nativescript/firebase-analytics": ["../../packages/firebase-analytics/index.d.ts"], "@nativescript/firebase-crashlytics": ["../../packages/firebase-crashlytics/index.d.ts"], "@nativescript/firebase-app-check": ["../../packages/firebase-app-check/index.d.ts"], @@ -18,7 +19,6 @@ "@nativescript/firebase-in-app-messaging": ["../../packages/firebase-in-app-messaging/index.d.ts"], "@nativescript/firebase-performance": ["../../packages/firebase-performance/index.d.ts"], "@nativescript/firebase-installations": ["../../packages/firebase-installations/index.d.ts"], - "@nativescript/firebase-dynamic-links": ["../../packages/firebase-dynamic-links/index.d.ts"], "@nativescript/firebase-messaging": ["../../packages/firebase-messaging/index.d.ts"], "@nativescript/firebase-functions": ["../../packages/firebase-functions/index.d.ts"], "@nativescript/firebase-app-check-debug": ["../../packages/firebase-app-check-debug/index.d.ts"], diff --git a/apps/demo/nativescript.config.ts b/apps/demo/nativescript.config.ts index 000ec6dc..5a5af011 100644 --- a/apps/demo/nativescript.config.ts +++ b/apps/demo/nativescript.config.ts @@ -4,6 +4,18 @@ export default { //id: 'org.nativescript.firebasedemo', id: 'io.github.triniwiz.nativescript.firebasedemo', appResourcesPath: '../../tools/assets/App_Resources', + ios: { + SPMPackages: [ + // Overrides the package @nativescript/firebase-analytics declares, swapping in the + // build without ad identifiers. Matching on `name` is what makes the app win. + { + name: 'FirebaseAnalytics', + libs: ['FirebaseAnalyticsCore'], + repositoryURL: 'https://github.com/firebase/firebase-ios-sdk', + version: '>=12.19.0 <13.0.0', + }, + ], + }, android: { v8Flags: '--expose_gc', markingMode: 'none', diff --git a/apps/demo/package.json b/apps/demo/package.json index 8c2e8dad..f594359e 100644 --- a/apps/demo/package.json +++ b/apps/demo/package.json @@ -5,6 +5,7 @@ "repository": "", "dependencies": { "@nativescript/core": "file:../../node_modules/@nativescript/core", + "@nativescript/firebase-ai": "file:../../packages/firebase-ai", "@nativescript/firebase-analytics": "file:../../dist/packages/firebase-analytics", "@nativescript/firebase-app-check": "file:../../packages/firebase-app-check", "@nativescript/firebase-app-check-debug": "file:../../packages/firebase-app-check-debug", @@ -12,7 +13,6 @@ "@nativescript/firebase-core": "file:../../packages/firebase-core", "@nativescript/firebase-crashlytics": "file:../../packages/firebase-crashlytics", "@nativescript/firebase-database": "file:../../packages/firebase-database", - "@nativescript/firebase-dynamic-links": "file:../../packages/firebase-dynamic-links", "@nativescript/firebase-firestore": "file:../../packages/firebase-firestore", "@nativescript/firebase-functions": "file:../../packages/firebase-functions", "@nativescript/firebase-in-app-messaging": "file:../../packages/firebase-in-app-messaging", @@ -22,8 +22,8 @@ "@nativescript/firebase-performance": "file:../../packages/firebase-performance", "@nativescript/firebase-remote-config": "file:../../packages/firebase-remote-config", "@nativescript/firebase-storage": "file:../../packages/firebase-storage", - "@nativescript/firebase-ui": "file:../../packages/firebase-ui", - "@nativescript/google-signin": "~2.1.0" + "@nativescript/firebase-ui": "file:../../dist/packages/firebase-ui", + "@nativescript/google-signin": "^3.0.0" }, "devDependencies": { "@nativescript/android": "~8.8.0", diff --git a/apps/demo/src/app.ts b/apps/demo/src/app.ts index 543aff3f..e1939cb0 100644 --- a/apps/demo/src/app.ts +++ b/apps/demo/src/app.ts @@ -5,7 +5,6 @@ import '@nativescript/firebase-analytics'; import '@nativescript/firebase-auth'; import '@nativescript/firebase-crashlytics'; import '@nativescript/firebase-database'; -import '@nativescript/firebase-dynamic-links'; import '@nativescript/firebase-firestore'; import '@nativescript/firebase-functions'; import '@nativescript/firebase-in-app-messaging'; @@ -27,12 +26,6 @@ firebase() firebase().crashlytics().setCrashlyticsCollectionEnabled(true); }); -const dynamicLinks = firebase().dynamicLinks(); - -dynamicLinks.onLink((link) => { - console.log('onLink', link); -}); - const messaging = firebase().messaging(); messaging.onMessage((message) => { diff --git a/apps/demo/src/main-view-model.ts b/apps/demo/src/main-view-model.ts index 13b7b070..8eb29bc0 100644 --- a/apps/demo/src/main-view-model.ts +++ b/apps/demo/src/main-view-model.ts @@ -2,6 +2,9 @@ import { Observable, Frame } from '@nativescript/core'; export class MainViewModel extends Observable { demos = [ + { + name: 'firebase-ai', + }, { name: 'firebase-analytics', }, @@ -14,9 +17,6 @@ export class MainViewModel extends Observable { { name: 'firebase-database', }, - { - name: 'firebase-dynamic-links', - }, { name: 'firebase-firestore', }, diff --git a/apps/demo/src/plugin-demos/firebase-ai.ts b/apps/demo/src/plugin-demos/firebase-ai.ts new file mode 100644 index 00000000..02772a9d --- /dev/null +++ b/apps/demo/src/plugin-demos/firebase-ai.ts @@ -0,0 +1,9 @@ +import { EventData, Page } from '@nativescript/core'; +import { DemoSharedFirebaseAi } from '@demo/shared'; + +export function navigatingTo(args: EventData) { + const page = args.object; + page.bindingContext = new DemoModel(); +} + +export class DemoModel extends DemoSharedFirebaseAi {} diff --git a/apps/demo/src/plugin-demos/firebase-ai.xml b/apps/demo/src/plugin-demos/firebase-ai.xml new file mode 100644 index 00000000..266f8078 --- /dev/null +++ b/apps/demo/src/plugin-demos/firebase-ai.xml @@ -0,0 +1,15 @@ + + + + + + + + +