19
19
20
20
import com .google .android .gms .tasks .OnCompleteListener ;
21
21
import com .google .android .gms .tasks .Task ;
22
- import com .google .firebase .FirebaseApp ;
23
22
24
23
import com .google .firebase .auth .AuthCredential ;
25
24
import com .google .firebase .auth .AuthResult ;
@@ -42,14 +41,12 @@ class FirestackAuthModule extends ReactContextBaseJavaModule {
42
41
// private Context context;
43
42
private ReactContext mReactContext ;
44
43
private FirebaseAuth mAuth ;
45
- private FirebaseApp app ;
46
- private FirebaseUser user ;
47
44
private FirebaseAuth .AuthStateListener mAuthListener ;
48
45
49
46
public FirestackAuthModule (ReactApplicationContext reactContext ) {
50
47
super (reactContext );
51
- // this.context = reactContext;
52
48
mReactContext = reactContext ;
49
+ mAuth = FirebaseAuth .getInstance ();
53
50
54
51
Log .d (TAG , "New FirestackAuth instance" );
55
52
}
@@ -78,16 +75,17 @@ private void callbackNoUser(Callback callback, Boolean isError) {
78
75
79
76
@ ReactMethod
80
77
public void listenForAuth () {
81
- if (mAuthListener == null || mAuth == null ) {
78
+ if (mAuthListener == null ) {
82
79
mAuthListener = new FirebaseAuth .AuthStateListener () {
83
80
@ Override
84
81
public void onAuthStateChanged (@ NonNull FirebaseAuth firebaseAuth ) {
82
+ FirebaseUser user = firebaseAuth .getCurrentUser ();
85
83
WritableMap msgMap = Arguments .createMap ();
86
84
msgMap .putString ("eventName" , "listenForAuth" );
87
85
88
- if (FirestackAuthModule . this . user != null ) {
86
+ if (user != null ) {
89
87
// TODO move to helper
90
- WritableMap userMap = getUserMap ();
88
+ WritableMap userMap = getUserMap (user );
91
89
msgMap .putBoolean ("authenticated" , true );
92
90
msgMap .putMap ("user" , userMap );
93
91
@@ -98,8 +96,6 @@ public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
98
96
}
99
97
}
100
98
};
101
-
102
- mAuth = FirebaseAuth .getInstance ();
103
99
mAuth .addAuthStateListener (mAuthListener );
104
100
}
105
101
}
@@ -119,16 +115,13 @@ public void unlistenForAuth(final Callback callback) {
119
115
120
116
@ ReactMethod
121
117
public void createUserWithEmail (final String email , final String password , final Callback callback ) {
122
- mAuth = FirebaseAuth .getInstance ();
123
-
124
118
mAuth .createUserWithEmailAndPassword (email , password )
125
119
.addOnCompleteListener (new OnCompleteListener <AuthResult >() {
126
120
@ Override
127
121
public void onComplete (@ NonNull Task <AuthResult > task ) {
128
122
try {
129
123
if (task .isSuccessful ()) {
130
- FirestackAuthModule .this .user = task .getResult ().getUser ();
131
- userCallback (FirestackAuthModule .this .user , callback );
124
+ userCallback (task .getResult ().getUser (), callback );
132
125
} else {
133
126
userErrorCallback (task , callback );
134
127
}
@@ -141,16 +134,14 @@ public void onComplete(@NonNull Task<AuthResult> task) {
141
134
142
135
@ ReactMethod
143
136
public void signInWithEmail (final String email , final String password , final Callback callback ) {
144
- mAuth = FirebaseAuth .getInstance ();
145
137
146
138
mAuth .signInWithEmailAndPassword (email , password )
147
139
.addOnCompleteListener (new OnCompleteListener <AuthResult >() {
148
140
@ Override
149
141
public void onComplete (@ NonNull Task <AuthResult > task ) {
150
142
try {
151
143
if (task .isSuccessful ()) {
152
- FirestackAuthModule .this .user = task .getResult ().getUser ();
153
- userCallback (FirestackAuthModule .this .user , callback );
144
+ userCallback (task .getResult ().getUser (), callback );
154
145
} else {
155
146
userErrorCallback (task , callback );
156
147
}
@@ -175,9 +166,6 @@ public void signInWithProvider(final String provider, final String authToken, fi
175
166
@ ReactMethod
176
167
public void signInAnonymously (final Callback callback ) {
177
168
Log .d (TAG , "signInAnonymously:called:" );
178
- mAuth = FirebaseAuth .getInstance ();
179
-
180
-
181
169
mAuth .signInAnonymously ()
182
170
.addOnCompleteListener (new OnCompleteListener <AuthResult >() {
183
171
@ Override
@@ -186,8 +174,7 @@ public void onComplete(@NonNull Task<AuthResult> task) {
186
174
187
175
try {
188
176
if (task .isSuccessful ()) {
189
- FirestackAuthModule .this .user = task .getResult ().getUser ();
190
- userCallback (FirestackAuthModule .this .user , callback );
177
+ userCallback (task .getResult ().getUser (), callback );
191
178
} else {
192
179
userErrorCallback (task , callback );
193
180
}
@@ -200,17 +187,14 @@ public void onComplete(@NonNull Task<AuthResult> task) {
200
187
201
188
@ ReactMethod
202
189
public void signInWithCustomToken (final String customToken , final Callback callback ) {
203
- mAuth = FirebaseAuth .getInstance ();
204
-
205
190
mAuth .signInWithCustomToken (customToken )
206
191
.addOnCompleteListener (new OnCompleteListener <AuthResult >() {
207
192
@ Override
208
193
public void onComplete (@ NonNull Task <AuthResult > task ) {
209
194
Log .d (TAG , "signInWithCustomToken:onComplete:" + task .isSuccessful ());
210
195
try {
211
196
if (task .isSuccessful ()) {
212
- FirestackAuthModule .this .user = task .getResult ().getUser ();
213
- userCallback (FirestackAuthModule .this .user , callback );
197
+ userCallback (task .getResult ().getUser (), callback );
214
198
} else {
215
199
userErrorCallback (task , callback );
216
200
}
@@ -231,7 +215,7 @@ public void reauthenticateWithCredentialForProvider(final String provider, final
231
215
232
216
@ ReactMethod
233
217
public void updateUserEmail (final String email , final Callback callback ) {
234
- FirebaseUser user = FirebaseAuth . getInstance () .getCurrentUser ();
218
+ FirebaseUser user = mAuth .getCurrentUser ();
235
219
236
220
if (user != null ) {
237
221
user
@@ -242,8 +226,7 @@ public void onComplete(@NonNull Task<Void> task) {
242
226
try {
243
227
if (task .isSuccessful ()) {
244
228
Log .d (TAG , "User email address updated" );
245
- FirebaseUser u = FirebaseAuth .getInstance ().getCurrentUser ();
246
- userCallback (u , callback );
229
+ userCallback (mAuth .getCurrentUser (), callback );
247
230
} else {
248
231
userErrorCallback (task , callback );
249
232
}
@@ -259,7 +242,7 @@ public void onComplete(@NonNull Task<Void> task) {
259
242
260
243
@ ReactMethod
261
244
public void updateUserPassword (final String newPassword , final Callback callback ) {
262
- FirebaseUser user = FirebaseAuth . getInstance () .getCurrentUser ();
245
+ FirebaseUser user = mAuth .getCurrentUser ();
263
246
264
247
if (user != null ) {
265
248
user .updatePassword (newPassword )
@@ -269,9 +252,7 @@ public void onComplete(@NonNull Task<Void> task) {
269
252
try {
270
253
if (task .isSuccessful ()) {
271
254
Log .d (TAG , "User password updated" );
272
-
273
- FirebaseUser u = FirebaseAuth .getInstance ().getCurrentUser ();
274
- userCallback (u , callback );
255
+ userCallback (mAuth .getCurrentUser (), callback );
275
256
} else {
276
257
userErrorCallback (task , callback );
277
258
}
@@ -287,8 +268,6 @@ public void onComplete(@NonNull Task<Void> task) {
287
268
288
269
@ ReactMethod
289
270
public void sendPasswordResetWithEmail (final String email , final Callback callback ) {
290
- mAuth = FirebaseAuth .getInstance ();
291
-
292
271
mAuth .sendPasswordResetEmail (email )
293
272
.addOnCompleteListener (new OnCompleteListener <Void >() {
294
273
@ Override
@@ -310,7 +289,7 @@ public void onComplete(@NonNull Task<Void> task) {
310
289
311
290
@ ReactMethod
312
291
public void deleteUser (final Callback callback ) {
313
- FirebaseUser user = FirebaseAuth . getInstance () .getCurrentUser ();
292
+ FirebaseUser user = mAuth .getCurrentUser ();
314
293
if (user != null ) {
315
294
user .delete ()
316
295
.addOnCompleteListener (new OnCompleteListener <Void >() {
@@ -339,7 +318,7 @@ public void onComplete(@NonNull Task<Void> task) {
339
318
340
319
@ ReactMethod
341
320
public void sendEmailVerification (final Callback callback ) {
342
- FirebaseUser user = FirebaseAuth . getInstance () .getCurrentUser ();
321
+ FirebaseUser user = mAuth .getCurrentUser ();
343
322
344
323
if (user != null ) {
345
324
user .sendEmailVerification ()
@@ -371,7 +350,7 @@ public void onComplete(@NonNull Task<Void> task) {
371
350
372
351
@ ReactMethod
373
352
public void getToken (final Callback callback ) {
374
- FirebaseUser user = FirebaseAuth . getInstance () .getCurrentUser ();
353
+ FirebaseUser user = mAuth .getCurrentUser ();
375
354
376
355
if (user != null ) {
377
356
user .getToken (true )
@@ -403,7 +382,7 @@ public void onComplete(@NonNull Task<GetTokenResult> task) {
403
382
404
383
@ ReactMethod
405
384
public void updateUserProfile (ReadableMap props , final Callback callback ) {
406
- FirebaseUser user = FirebaseAuth . getInstance () .getCurrentUser ();
385
+ FirebaseUser user = mAuth .getCurrentUser ();
407
386
408
387
if (user != null ) {
409
388
UserProfileChangeRequest .Builder profileBuilder = new UserProfileChangeRequest .Builder ();
@@ -430,8 +409,7 @@ public void onComplete(@NonNull Task<Void> task) {
430
409
try {
431
410
if (task .isSuccessful ()) {
432
411
Log .d (TAG , "User profile updated" );
433
- FirebaseUser u = FirebaseAuth .getInstance ().getCurrentUser ();
434
- userCallback (u , callback );
412
+ userCallback (mAuth .getCurrentUser (), callback );
435
413
} else {
436
414
userErrorCallback (task , callback );
437
415
}
@@ -447,8 +425,7 @@ public void onComplete(@NonNull Task<Void> task) {
447
425
448
426
@ ReactMethod
449
427
public void signOut (final Callback callback ) {
450
- FirebaseAuth .getInstance ().signOut ();
451
- this .user = null ;
428
+ mAuth .signOut ();
452
429
453
430
WritableMap resp = Arguments .createMap ();
454
431
resp .putString ("status" , "complete" );
@@ -458,31 +435,26 @@ public void signOut(final Callback callback) {
458
435
459
436
@ ReactMethod
460
437
public void getCurrentUser (final Callback callback ) {
461
- mAuth = FirebaseAuth .getInstance ();
462
-
463
- this .user = mAuth .getCurrentUser ();
464
- if (this .user == null ) {
438
+ FirebaseUser user = mAuth .getCurrentUser ();
439
+ if (user == null ) {
465
440
callbackNoUser (callback , false );
466
441
} else {
467
- Log .d ("USRC" , this . user .getUid ());
468
- userCallback (this . user , callback );
442
+ Log .d ("USRC" , user .getUid ());
443
+ userCallback (user , callback );
469
444
}
470
445
}
471
446
472
447
// TODO: Check these things
473
448
@ ReactMethod
474
449
public void googleLogin (String IdToken , final Callback callback ) {
475
- mAuth = FirebaseAuth .getInstance ();
476
-
477
450
AuthCredential credential = GoogleAuthProvider .getCredential (IdToken , null );
478
451
mAuth .signInWithCredential (credential )
479
452
.addOnCompleteListener (new OnCompleteListener <AuthResult >() {
480
453
@ Override
481
454
public void onComplete (@ NonNull Task <AuthResult > task ) {
482
455
try {
483
456
if (task .isSuccessful ()) {
484
- FirestackAuthModule .this .user = task .getResult ().getUser ();
485
- userCallback (FirestackAuthModule .this .user , callback );
457
+ userCallback (task .getResult ().getUser (), callback );
486
458
} else {
487
459
userErrorCallback (task , callback );
488
460
}
@@ -495,17 +467,14 @@ public void onComplete(@NonNull Task<AuthResult> task) {
495
467
496
468
@ ReactMethod
497
469
public void facebookLogin (String Token , final Callback callback ) {
498
- mAuth = FirebaseAuth .getInstance ();
499
-
500
470
AuthCredential credential = FacebookAuthProvider .getCredential (Token );
501
471
mAuth .signInWithCredential (credential )
502
472
.addOnCompleteListener (new OnCompleteListener <AuthResult >() {
503
473
@ Override
504
474
public void onComplete (@ NonNull Task <AuthResult > task ) {
505
475
try {
506
476
if (task .isSuccessful ()) {
507
- FirestackAuthModule .this .user = task .getResult ().getUser ();
508
- userCallback (FirestackAuthModule .this .user , callback );
477
+ userCallback (task .getResult ().getUser (), callback );
509
478
} else {
510
479
userErrorCallback (task , callback );
511
480
}
@@ -517,24 +486,15 @@ public void onComplete(@NonNull Task<AuthResult> task) {
517
486
}
518
487
519
488
// Internal helpers
520
- private void userCallback (FirebaseUser passedUser , final Callback callback ) {
521
-
522
- if (passedUser == null ) {
523
- mAuth = FirebaseAuth .getInstance ();
524
- this .user = mAuth .getCurrentUser ();
525
- } else {
526
- this .user = passedUser ;
527
- }
528
-
529
- if (this .user != null ) {
530
- this .user .getToken (true ).addOnCompleteListener (new OnCompleteListener <GetTokenResult >() {
489
+ private void userCallback (final FirebaseUser user , final Callback callback ) {
490
+ if (user != null ) {
491
+ user .getToken (true ).addOnCompleteListener (new OnCompleteListener <GetTokenResult >() {
531
492
@ Override
532
493
public void onComplete (@ NonNull Task <GetTokenResult > task ) {
533
494
try {
534
495
if (task .isSuccessful ()) {
535
- WritableMap userMap = getUserMap ();
536
- final String token = task .getResult ().getToken ();
537
- userMap .putString ("token" , token );
496
+ WritableMap userMap = getUserMap (user );
497
+ userMap .putString ("token" , task .getResult ().getToken ());
538
498
callback .invoke (null , userMap );
539
499
} else {
540
500
userErrorCallback (task , callback );
@@ -567,11 +527,8 @@ private void userExceptionCallback(Exception ex, final Callback onFail) {
567
527
onFail .invoke (error );
568
528
}
569
529
570
- private WritableMap getUserMap () {
530
+ private WritableMap getUserMap (FirebaseUser user ) {
571
531
WritableMap userMap = Arguments .createMap ();
572
-
573
- FirebaseUser user = FirebaseAuth .getInstance ().getCurrentUser ();
574
-
575
532
if (user != null ) {
576
533
final String email = user .getEmail ();
577
534
final String uid = user .getUid ();
0 commit comments