Skip to content

Commit 1d6c09e

Browse files
committed
feat: add ui support
1 parent 8a0251d commit 1d6c09e

File tree

69 files changed

+23995
-27
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

69 files changed

+23995
-27
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
- [@nativescript/firebase-performance](packages/firebase-performance/README.md)
1717
- [@nativescript/firebase-remote-config](packages/firebase-remote-config/README.md)
1818
- [@nativescript/firebase-storage](packages/firebase-storage/README.md)
19+
- [@nativescript/firebase-ui](packages/firebase-ui/README.md)
1920

2021
# How to use?
2122

apps/demo-angular/package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@
1919
"@nativescript/firebase-messaging": "file:../../dist/packages/firebase-messaging",
2020
"@nativescript/firebase-functions": "file:../../dist/packages/firebase-functions",
2121
"@nativescript/firebase-app-check-debug": "file:../../dist/packages/firebase-app-check-debug",
22-
"@nativescript/firebase-messaging-core": "file:../../dist/packages/firebase-messaging-core"
22+
"@nativescript/firebase-messaging-core": "file:../../dist/packages/firebase-messaging-core",
23+
"@nativescript/firebase-ui": "file:../../dist/packages/firebase-ui"
2324
},
2425
"devDependencies": {
2526
"@nativescript/android": "~8.4.0",

apps/demo-angular/src/app-routing.module.ts

+1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ const routes: Routes = [
2525
{ path: 'firebase-performance', loadChildren: () => import('./plugin-demos/firebase-performance.module').then((m) => m.FirebasePerformanceModule) },
2626
{ path: 'firebase-remote-config', loadChildren: () => import('./plugin-demos/firebase-remote-config.module').then((m) => m.FirebaseRemoteConfigModule) },
2727
{ path: 'firebase-storage', loadChildren: () => import('./plugin-demos/firebase-storage.module').then((m) => m.FirebaseStorageModule) },
28+
{ path: 'firebase-ui', loadChildren: () => import('./plugin-demos/firebase-ui.module').then((m) => m.FirebaseUiModule) },
2829
];
2930

3031
@NgModule({

apps/demo-angular/src/home.component.ts

+3
Original file line numberDiff line numberDiff line change
@@ -60,5 +60,8 @@ export class HomeComponent {
6060
{
6161
name: 'firebase-storage',
6262
},
63+
{
64+
name: 'firebase-ui',
65+
},
6366
];
6467
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<ActionBar title="firebase-ui" class="action-bar"> </ActionBar>
2+
<StackLayout class="p-20">
3+
<ScrollView class="h-full">
4+
<StackLayout>
5+
<Button text="Test firebase-ui" (tap)="demoShared.testIt()" class="btn btn-primary"></Button>
6+
</StackLayout>
7+
</ScrollView>
8+
</StackLayout>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import { Component, NgZone } from '@angular/core';
2+
import { DemoSharedFirebaseUi } from '@demo/shared';
3+
import {} from '@nativescript/firebase-ui';
4+
5+
@Component({
6+
selector: 'demo-firebase-ui',
7+
templateUrl: 'firebase-ui.component.html',
8+
})
9+
export class FirebaseUiComponent {
10+
demoShared: DemoSharedFirebaseUi;
11+
12+
constructor(private _ngZone: NgZone) {}
13+
14+
ngOnInit() {
15+
this.demoShared = new DemoSharedFirebaseUi();
16+
}
17+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';
2+
import { NativeScriptCommonModule, NativeScriptRouterModule } from '@nativescript/angular';
3+
import { FirebaseUiComponent } from './firebase-ui.component';
4+
5+
@NgModule({
6+
imports: [NativeScriptCommonModule, NativeScriptRouterModule.forChild([{ path: '', component: FirebaseUiComponent }])],
7+
declarations: [FirebaseUiComponent],
8+
schemas: [NO_ERRORS_SCHEMA],
9+
})
10+
export class FirebaseUiModule {}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<template>
2+
<Page>
3+
<ActionBar>
4+
<Label text="firebase-ui"/>
5+
</ActionBar>
6+
7+
<GridLayout>
8+
<Button class="info" :text="message"/>
9+
</GridLayout>
10+
</Page>
11+
</template>
12+
13+
<script lang="ts">
14+
import Vue from "nativescript-vue";
15+
import { DemoSharedFirebaseUi } from '@demo/shared';
16+
import { } from '@nativescript/firebase-ui';
17+
18+
export default Vue.extend({
19+
computed: {
20+
message() {
21+
return "Test firebase-ui";
22+
}
23+
}
24+
});
25+
</script>
26+
27+
<style scoped lang="scss">
28+
29+
.info {
30+
font-size: 20;
31+
horizontal-align: center;
32+
vertical-align: center;
33+
}
34+
</style>

apps/demo-vue/package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@
2020
"@nativescript/firebase-remote-config": "file:../../packages/firebase-remote-config",
2121
"@nativescript/firebase-storage": "file:../../packages/firebase-storage",
2222
"@nativescript/firebase-app-check-debug": "file:../../packages/firebase-app-check-debug",
23-
"@nativescript/firebase-messaging-core": "file:../../packages/firebase-messaging-core"
23+
"@nativescript/firebase-messaging-core": "file:../../packages/firebase-messaging-core",
24+
"@nativescript/firebase-ui": "file:../../packages/firebase-ui"
2425
},
2526
"devDependencies": {
2627
"@nativescript/android": "~8.4.0",

apps/demo/package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@
2323
"@nativescript/firebase-storage": "file:../../packages/firebase-storage",
2424
"@nativescript/google-signin": "^1.0.0-alpha.9",
2525
"@nativescript/firebase-app-check-debug": "file:../../packages/firebase-app-check-debug",
26-
"@nativescript/firebase-messaging-core": "file:../../packages/firebase-messaging-core"
26+
"@nativescript/firebase-messaging-core": "file:../../packages/firebase-messaging-core",
27+
"@nativescript/firebase-ui": "file:../../packages/firebase-ui"
2728
},
2829
"devDependencies": {
2930
"@nativescript/android": "~8.4.0",

apps/demo/src/app.ts

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import '@nativescript/firebase-messaging';
1313
import '@nativescript/firebase-performance';
1414
import '@nativescript/firebase-remote-config';
1515
import '@nativescript/firebase-storage';
16+
import '@nativescript/firebase-ui';
1617

1718
import { Admob } from '@nativescript/firebase-admob';
1819

apps/demo/src/main-page.xml

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11

22
<Page xmlns="http://schemas.nativescript.org/tns.xsd" navigatingTo="navigatingTo" class="page">
33
<Button text="firebase-messaging-core" tap="{{ viewDemo }}" class="btn btn-primary view-demo"/>
4+
<Button text="firebase-ui" tap="{{ viewDemo }}" class="btn btn-primary view-demo"/>
45
<Page.actionBar>
56
<ActionBar title="Plugin Demos" icon="" class="action-bar"/>
67
</Page.actionBar>

apps/demo/src/main-view-model.ts

+3
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,9 @@ export class MainViewModel extends Observable {
4747
{
4848
name: 'firebase-firestore',
4949
},
50+
{
51+
name: 'firebase-ui',
52+
},
5053
];
5154

5255
viewDemo(args) {
+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import { Observable, EventData, Page } from '@nativescript/core';
2+
import { DemoSharedFirebaseUi } from '@demo/shared';
3+
import { firebase } from '@nativescript/firebase-core';
4+
import { AppleProvider, EmailProvider, GithubProvider, GoogleProvider, MicrosoftProvider, TwitterProvider, YahooProvider } from '@nativescript/firebase-ui';
5+
6+
export function navigatingTo(args: EventData) {
7+
const page = <Page>args.object;
8+
page.bindingContext = new DemoModel();
9+
}
10+
11+
export class DemoModel extends DemoSharedFirebaseUi {
12+
show() {
13+
firebase()
14+
.ui()
15+
.show({
16+
providers: [new AppleProvider(), new GoogleProvider(), new TwitterProvider(), new GithubProvider(), new EmailProvider(), new MicrosoftProvider(), new YahooProvider()],
17+
})
18+
.then((result) => {
19+
console.log(result.user);
20+
console.log(result.hasCredentialForLinking);
21+
console.log(result.providerType);
22+
})
23+
.catch((error) => {
24+
console.error('show error:', error);
25+
});
26+
}
27+
28+
signOut() {
29+
firebase()
30+
.ui()
31+
.signOut()
32+
.then(() => {
33+
console.log('signOut complete');
34+
})
35+
.catch((e) => {
36+
console.error('signOut error:', e);
37+
});
38+
}
39+
}
+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<Page xmlns="http://schemas.nativescript.org/tns.xsd" navigatingTo="navigatingTo" class="page">
2+
<Page.actionBar>
3+
<ActionBar title="firebase-ui" icon="" class="action-bar">
4+
</ActionBar>
5+
</Page.actionBar>
6+
<StackLayout class="p-20">
7+
<ScrollView class="h-full">
8+
<StackLayout>
9+
<Button text="Show UI" tap="{{ show }}" class="btn btn-primary"/>
10+
<Button text="Sign out" tap="{{ signOut }}" class="btn btn-primary"/>
11+
12+
</StackLayout>
13+
</ScrollView>
14+
</StackLayout>
15+
</Page>

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "plugins",
3-
"version": "3.0.0",
3+
"version": "3.1.0",
44
"license": "MIT",
55
"scripts": {
66
"postinstall": "husky install && npx ts-patch install",

packages/firebase-admob/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@nativescript/firebase-admob",
3-
"version": "3.0.0",
3+
"version": "3.1.0",
44
"description": "NativeScript Firebase - Admob",
55
"main": "index",
66
"typings": "index.d.ts",

packages/firebase-analytics/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@nativescript/firebase-analytics",
3-
"version": "3.0.0",
3+
"version": "3.1.0",
44
"description": "NativeScript Firebase - Analytics",
55
"main": "index",
66
"typings": "index.d.ts",

packages/firebase-app-check-debug/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@nativescript/firebase-app-check-debug",
3-
"version": "3.0.0",
3+
"version": "3.1.0",
44
"description": "NativeScript Firebase - App Check",
55
"main": "index",
66
"typings": "index.d.ts",

packages/firebase-app-check/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@nativescript/firebase-app-check",
3-
"version": "3.0.0",
3+
"version": "3.1.0",
44
"description": "NativeScript Firebase - App Check",
55
"main": "index",
66
"typings": "index.d.ts",

packages/firebase-auth/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@nativescript/firebase-auth",
3-
"version": "3.0.0",
3+
"version": "3.1.0",
44
"description": "NativeScript Firebase - Auth",
55
"main": "index",
66
"typings": "index.d.ts",

packages/firebase-core/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@nativescript/firebase-core",
3-
"version": "3.0.0",
3+
"version": "3.1.0",
44
"description": "NativeScript Firebase - Core",
55
"main": "index",
66
"typings": "index.d.ts",

packages/firebase-crashlytics/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@nativescript/firebase-crashlytics",
3-
"version": "3.0.0",
3+
"version": "3.1.0",
44
"description": "NativeScript Firebase - Crashlytics",
55
"main": "index",
66
"typings": "index.d.ts",

packages/firebase-database/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@nativescript/firebase-database",
3-
"version": "3.0.0",
3+
"version": "3.1.0",
44
"description": "NativeScript Firebase - Database",
55
"main": "index",
66
"typings": "index.d.ts",

packages/firebase-dynamic-links/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@nativescript/firebase-dynamic-links",
3-
"version": "3.0.0",
3+
"version": "3.1.0",
44
"description": "NativeScript Firebase - Dynamic Links",
55
"main": "index",
66
"typings": "index.d.ts",

packages/firebase-firestore/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@nativescript/firebase-firestore",
3-
"version": "3.0.0",
3+
"version": "3.1.0",
44
"description": "NativeScript Firebase - Firestore",
55
"main": "index",
66
"typings": "index.d.ts",
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
platform :ios, '12.0'
2-
pod 'FirebaseFirestore', '~>10.7.0'
2+
pod 'Firebase/Firestore', '~>10.7.0'

packages/firebase-functions/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@nativescript/firebase-functions",
3-
"version": "3.0.0",
3+
"version": "3.1.0",
44
"description": "NativeScript Firebase - Functions",
55
"main": "index",
66
"typings": "index.d.ts",

packages/firebase-in-app-messaging/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@nativescript/firebase-in-app-messaging",
3-
"version": "3.0.0",
3+
"version": "3.1.0",
44
"description": "NativeScript Firebase - In App Messaging",
55
"main": "index",
66
"typings": "index.d.ts",

packages/firebase-installations/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@nativescript/firebase-installations",
3-
"version": "3.0.0",
3+
"version": "3.1.0",
44
"description": "NativeScript Firebase - Installations",
55
"main": "index",
66
"typings": "index.d.ts",

packages/firebase-messaging-core/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@nativescript/firebase-messaging-core",
3-
"version": "3.0.0",
3+
"version": "3.1.0",
44
"description": "NativeScript Push Messaging Core",
55
"main": "index",
66
"typings": "index.d.ts",

packages/firebase-messaging-core/platforms/ios/src/NSCUIApplicationDelegate.swift

+14-3
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ import FirebaseMessaging
77
#if canImport(FirebaseAuth)
88
import FirebaseAuth
99
#endif
10+
#if canImport(FirebaseAuthUI)
11+
import FirebaseAuthUI
12+
#endif
1013
import NSCFirebaseMessagingCore
1114

1215
@objc(NSCUIApplicationDelegate)
@@ -95,11 +98,19 @@ public class NSCUIApplicationDelegate: UIResponder , UIApplicationDelegate {
9598

9699

97100
@objc public func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
98-
var result = false
99101
#if canImport(FirebaseAuth)
100-
result = Auth.auth().canHandle(url)
102+
if(Auth.auth().canHandle(url)){
103+
return true
104+
}
105+
#endif
106+
107+
#if canImport(FirebaseAuthUI)
108+
let sourceApplication = options[UIApplication.OpenURLOptionsKey.sourceApplication] as! String?
109+
if(FUIAuth.defaultAuthUI()?.handleOpen(url, sourceApplication: sourceApplication) ?? false){
110+
return true
111+
}
101112
#endif
102-
return result
113+
return false
103114
}
104115

105116

packages/firebase-messaging/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@nativescript/firebase-messaging",
3-
"version": "3.0.0",
3+
"version": "3.1.0",
44
"description": "NativeScript Firebase - Messaging",
55
"main": "index",
66
"typings": "index.d.ts",

packages/firebase-performance/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@nativescript/firebase-performance",
3-
"version": "3.0.0",
3+
"version": "3.1.0",
44
"description": "NativeScript Firebase - Performancee",
55
"main": "index",
66
"typings": "index.d.ts",

packages/firebase-remote-config/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@nativescript/firebase-remote-config",
3-
"version": "3.0.0",
3+
"version": "3.1.0",
44
"description": "NativeScript Firebase - Remote Config",
55
"main": "index",
66
"typings": "index.d.ts",

0 commit comments

Comments
 (0)