@@ -29,6 +29,16 @@ All login functions below, as well as `getCurrentUser` return a 'User' object wi
2929
3030
3131## Functions
32+ You can either use the Native API, or the Web API. It's just a matter of personal background or preference. Under the hood the implementations are identical.
33+
34+ You can also mix and match the API calls.
35+
36+ The relevant imports would be:
37+
38+ ``` typescript
39+ const firebase = require (" nativescript-plugin-firebase" );
40+ const firebaseWebApi = require (" nativescript-plugin-firebase/app" );
41+ ```
3242
3343### Listening to auth state changes
3444As stated [ here] ( https://firebase.google.com/docs/auth/ios/manage-users#get_the_currently_signed-in_user ) :
@@ -73,39 +83,56 @@ If - for some reason - you want more control over the listener you can use these
7383```
7484
7585### Get Current User
76- Once the user is logged in you can retrieve the currently logged in user.
86+ Once the user is logged in you can retrieve the currently logged in user:
7787
78- ##### JavaScript
79- ``` js
80- firebase .getCurrentUser ().then (
81- function (result ) {
82- console .log (JSON .stringify (result));
83- },
84- function (errorMessage ) {
85- console .log (errorMessage);
86- }
87- );
88+ <details >
89+ <summary >Native API</summary >
90+
91+ ``` typescript
92+ firebase .getCurrentUser ()
93+ .then (user => console .log (" User uid: " + user .uid ))
94+ .catch (error => console .log (" Trouble in paradise: " + error ));
8895```
96+ </details >
97+
98+ <details >
99+ <summary >Web API</summary >
89100
90- ##### TypeScript
91101``` typescript
92- firebase .getCurrentUser ().then (user => {
93- alert (" User uid: " + user .uid );
94- }, error => {
95- alert (" Trouble in paradise: " + error );
96- });
102+ const user = firebaseWebApi .auth ().currentUser ;
97103```
104+ </details >
98105
99106### Fetch providers for email
100107Want to know which auth providers are associated with an emailaddress?
101108
102- ##### TypeScript
109+
110+ <details >
111+ <summary >Native API</summary >
112+
103113``` typescript
104114 const emailAddress
= " [email protected] " ;
105115 firebase .fetchProvidersForEmail (emailAddress ).then ((providers : Array <string >) => {
106116 console .log (` Providers for ${emailAddress }: ${JSON .stringify (providers )} ` );
107117 });
108118```
119+ </details >
120+
121+ <details >
122+ <summary >Web API</summary >
123+
124+ ``` js
125+ const user = firebaseWebApi .auth ().currentUser ;
126+ if (! user || ! user .email ) {
127+ console .log (" Can't fetch providers; no user with an emailaddress logged in." );
128+ return ;
129+ }
130+
131+ firebaseWebApi .auth ().fetchProvidersForEmail (user .email )
132+ .then (result => console .log (` Providers for ${ user .email } : ${ JSON .stringify (result)} ` ))
133+ .catch (error => console .log (" Fetch Providers for Email error: " + error));
134+ ```
135+ </details >
109136
110137### Updating a profile
111138Pass in at least one of ` displayName ` and ` photoURL ` .
@@ -128,55 +155,68 @@ The logged in user will be updated, but for `getCurrentUser` to reflect the chan
128155### Anonymous login
129156Don't forget to enable anonymous login in your firebase instance.
130157
131- ##### JavaScript
132- ``` js
133- firebase .login ({
134- type: firebase .LoginType .ANONYMOUS
135- }).then (
136- function (result ) {
137- console .log (JSON .stringify (result));
138- },
139- function (errorMessage ) {
140- console .log (errorMessage);
141- }
142- );
158+ <details >
159+ <summary >Native API</summary >
160+
161+ ``` typescript
162+ firebase .login (
163+ {
164+ type: firebase .LoginType .ANONYMOUS
165+ })
166+ .then (user => console .log (" User uid: " + user .uid ))
167+ .catch (error => console .log (" Trouble in paradise: " + error ));
143168```
169+ </details >
170+
171+ <details >
172+ <summary >Web API</summary >
144173
145- ##### TypeScript
146174``` typescript
147- firebase .login ({
148- type: firebase .LoginType .ANONYMOUS
149- }).then (user => {
150- alert (" User uid: " + user .uid );
151- }, error => {
152- alert (" Trouble in paradise: " + error );
153- });
175+ firebaseWebApi .auth ().signInAnonymously ()
176+ .then (() => console .log (" User logged in" ))
177+ .catch (err => console .log (" Login error: " + JSON .stringify (err )));
154178```
179+ </details >
155180
156181### Email-Password login
157182Don't forget to enable email-password login in your firebase instance.
158183
159- ``` js
160- firebase .login ({
161- type: firebase .LoginType .PASSWORD ,
162- passwordOptions: {
163- 164- password: ' theirpassword'
165- }
166- }).then (
167- function (result ) {
168- JSON .stringify (result);
169- },
170- function (errorMessage ) {
171- console .log (errorMessage);
172- }
173- );
184+ <details >
185+ <summary >Native API</summary >
186+
187+ ``` typescript
188+ firebase .login (
189+ {
190+ type: firebase .LoginType .PASSWORD ,
191+ passwordOptions: {
192+ 193+ password: ' theirpassword'
194+ }
195+ })
196+ .then (result => JSON .stringify (result ))
197+ .catch (error => console .log (error ));
198+ ```
199+ </details >
200+
201+ <details >
202+ <summary >Web API</summary >
203+
204+ ``` typescript
205+ firebaseWebApi .
auth ().
signInWithEmailAndPassword (
' [email protected] ' ,
' firebase' )
206+ .then (() => console .log (" User logged in" ))
207+ .catch (err => console .log (" Login error: " + JSON .stringify (err )));
174208```
209+ </details >
210+
175211
176212#### Managing email-password accounts
213+
177214##### Creating a Password account
178215This may not work on an (Android) simulator. See #463 .
179216
217+ <details >
218+ <summary >Native API</summary >
219+
180220``` js
181221 firebase .createUser ({
182222@@ -198,6 +238,19 @@ This may not work on an (Android) simulator. See #463.
198238 }
199239 );
200240```
241+ </details >
242+
243+ <details >
244+ <summary >Web API</summary >
245+
246+ ``` typescript
247+ firebaseWebApi .auth ().signOut ()
248+ .then (() => console .log (" Logout OK" ))
249+ .catch (error => " Logout error: " + JSON .stringify (error ));
250+ ```
251+ </details >
252+
253+
201254
202255#### Resetting a password
203256``` js
@@ -415,9 +468,23 @@ a Firebase auth token for the currently logged in user.
415468### logout
416469Shouldn't be more complicated than:
417470
471+ <details >
472+ <summary >Native API</summary >
473+
418474``` js
419475 firebase .logout ();
420476```
477+ </details >
478+
479+ <details >
480+ <summary >Web API</summary >
481+
482+ ``` js
483+ firebaseWebApi .auth ().signOut ()
484+ .then (() => console .log (" Logout OK" ))
485+ .catch (error => console .log (" Logout error: " + JSON .stringify (error)));
486+ ```
487+ </details >
421488
422489### reauthenticate
423490Some security-sensitive actions (deleting an account, changing a password) require that the user has recently signed in.
0 commit comments