Skip to content

Commit d7f98e4

Browse files
author
jbesse
committed
[Anonymous signin]: Adding anonymously signin on android and IOS firebase native modules.
1 parent 2cfde4a commit d7f98e4

File tree

2 files changed

+69
-27
lines changed

2 files changed

+69
-27
lines changed

android/src/main/java/io/fullstack/firestack/FirestackAuth.java

Lines changed: 30 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -143,22 +143,43 @@ public void signInWithProvider(final String provider, final String authToken, fi
143143
FirestackUtils.todoNote(TAG, "signInWithProvider", callback);
144144
}
145145

146+
@ReactMethod
147+
public void signInAnonymously(final Callback callback) {
148+
mAuth = FirebaseAuth.getInstance();
149+
150+
mAuth.signInAnonymously()
151+
.addOnCompleteListener(new OnCompleteListener<AuthResult>() {
152+
@Override
153+
public void onComplete(@NonNull Task<AuthResult> task) {
154+
Log.d(TAG, "signInAnonymously:onComplete:" + task.isSuccessful());
155+
156+
if (task.isSuccessful()) {
157+
user = task.getResult().getUser();
158+
userCallback(user, callback);
159+
}else{
160+
userErrorCallback(task, callback);
161+
}
162+
}
163+
});
164+
165+
}
166+
146167
@ReactMethod
147168
public void signInWithCustomToken(final String customToken, final Callback callback) {
148169
mAuth = FirebaseAuth.getInstance();
149170

150171
mAuth.signInWithCustomToken(customToken)
151172
.addOnCompleteListener(new OnCompleteListener<AuthResult>() {
152-
@Override
153-
public void onComplete(@NonNull Task<AuthResult> task) {
154-
Log.d(TAG, "signInWithCustomToken:onComplete:" + task.isSuccessful());
155-
if (task.isSuccessful()) {
156-
user = task.getResult().getUser();
157-
userCallback(user, callback);
158-
} else {
159-
userErrorCallback(task, callback);
173+
@Override
174+
public void onComplete(@NonNull Task<AuthResult> task) {
175+
Log.d(TAG, "signInWithCustomToken:onComplete:" + task.isSuccessful());
176+
if (task.isSuccessful()) {
177+
user = task.getResult().getUser();
178+
userCallback(user, callback);
179+
} else {
180+
userErrorCallback(task, callback);
181+
}
160182
}
161-
}
162183
});
163184
}
164185

ios/Firestack/FirestackAuth.m

Lines changed: 39 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,35 @@ @implementation FirestackAuth
1616

1717
RCT_EXPORT_MODULE(FirestackAuth);
1818

19+
RCT_EXPORT_METHOD(signInAnonymously:
20+
(RCTResponseSenderBlock) callBack)
21+
{
22+
23+
[[FIRAuth auth] signInAnonymouslyWithCompletion
24+
:^(FIRUser *user, NSError *error) {
25+
if (!user) {
26+
NSDictionary *evt = @{
27+
@"eventName": @"SignInAnonymouslyError",
28+
@"msg": [error localizedFailureReason]
29+
};
30+
31+
[self sendJSEvent:AUTH_CHANGED_EVENT props: evt];
32+
callBack(@[evt]);
33+
return;
34+
}
35+
NSDictionary *userProps = [self userPropsFromFIRUser:user];
36+
callBack(@[[NSNull null], userProps]);
37+
}];
38+
}
39+
1940
RCT_EXPORT_METHOD(signInWithCustomToken:
2041
(NSString *)customToken
2142
callback:(RCTResponseSenderBlock) callback)
2243
{
2344
[[FIRAuth auth]
2445
signInWithCustomToken:customToken
2546
completion:^(FIRUser *user, NSError *error) {
26-
47+
2748
if (user != nil) {
2849
NSDictionary *userProps = [self userPropsFromFIRUser:user];
2950
callback(@[[NSNull null], userProps]);
@@ -52,7 +73,7 @@ @implementation FirestackAuth
5273
};
5374
return callback(@[err]);
5475
}
55-
76+
5677
@try {
5778
[[FIRAuth auth] signInWithCredential:credential
5879
completion:^(FIRUser *user, NSError *error) {
@@ -98,7 +119,7 @@ @implementation FirestackAuth
98119
self->authListenerHandle =
99120
[[FIRAuth auth] addAuthStateDidChangeListener:^(FIRAuth *_Nonnull auth,
100121
FIRUser *_Nullable user) {
101-
122+
102123
if (user != nil) {
103124
// User is signed in.
104125
[self userPropsFromFIRUserWithToken:user
@@ -146,7 +167,7 @@ @implementation FirestackAuth
146167
RCT_EXPORT_METHOD(getCurrentUser:(RCTResponseSenderBlock)callback)
147168
{
148169
FIRUser *user = [FIRAuth auth].currentUser;
149-
170+
150171
if (user != nil) {
151172
NSDictionary *userProps = [self userPropsFromFIRUser:user];
152173
callback(@[[NSNull null], userProps]);
@@ -191,7 +212,7 @@ @implementation FirestackAuth
191212
completion:^(FIRUser *user, NSError *error) {
192213
if (user != nil) {
193214
NSDictionary *userProps = [self userPropsFromFIRUser:user];
194-
215+
195216
callback(@[[NSNull null], @{
196217
@"user": userProps
197218
}]);
@@ -209,7 +230,7 @@ @implementation FirestackAuth
209230
callback:(RCTResponseSenderBlock) callback)
210231
{
211232
FIRUser *user = [FIRAuth auth].currentUser;
212-
233+
213234
[user updateEmail:email completion:^(NSError *_Nullable error) {
214235
if (error) {
215236
// An error happened.
@@ -229,9 +250,9 @@ @implementation FirestackAuth
229250
RCT_EXPORT_METHOD(updateUserPassword:(NSString *)newPassword
230251
callback:(RCTResponseSenderBlock) callback)
231252
{
232-
253+
233254
FIRUser *user = [FIRAuth auth].currentUser;
234-
255+
235256
[user updatePassword:newPassword completion:^(NSError *_Nullable error) {
236257
if (error) {
237258
// An error happened.
@@ -251,7 +272,7 @@ @implementation FirestackAuth
251272
RCT_EXPORT_METHOD(sendPasswordResetWithEmail:(NSString *)email
252273
callback:(RCTResponseSenderBlock) callback)
253274
{
254-
275+
255276
[[FIRAuth auth] sendPasswordResetWithEmail:email
256277
completion:^(NSError *_Nullable error) {
257278
if (error) {
@@ -273,7 +294,7 @@ @implementation FirestackAuth
273294
RCT_EXPORT_METHOD(deleteUser:(RCTResponseSenderBlock) callback)
274295
{
275296
FIRUser *user = [FIRAuth auth].currentUser;
276-
297+
277298
[user deleteWithCompletion:^(NSError *_Nullable error) {
278299
if (error) {
279300
NSDictionary *err =
@@ -290,7 +311,7 @@ @implementation FirestackAuth
290311
RCT_EXPORT_METHOD(getToken:(RCTResponseSenderBlock) callback)
291312
{
292313
FIRUser *user = [FIRAuth auth].currentUser;
293-
314+
294315
[user getTokenWithCompletion:^(NSString *token, NSError *_Nullable error) {
295316
if (error) {
296317
NSDictionary *err =
@@ -308,7 +329,7 @@ @implementation FirestackAuth
308329
RCT_EXPORT_METHOD(getTokenWithCompletion:(RCTResponseSenderBlock) callback)
309330
{
310331
FIRUser *user = [FIRAuth auth].currentUser;
311-
332+
312333
[user getTokenWithCompletion:^(NSString *token , NSError *_Nullable error) {
313334
if (error) {
314335
NSDictionary *err =
@@ -338,9 +359,9 @@ @implementation FirestackAuth
338359
};
339360
return callback(@[err]);
340361
}
341-
362+
342363
FIRUser *user = [FIRAuth auth].currentUser;
343-
364+
344365
[user reauthenticateWithCredential:credential completion:^(NSError *_Nullable error) {
345366
if (error) {
346367
NSDictionary *err =
@@ -360,7 +381,7 @@ @implementation FirestackAuth
360381
{
361382
FIRUser *user = [FIRAuth auth].currentUser;
362383
FIRUserProfileChangeRequest *changeRequest = [user profileChangeRequest];
363-
384+
364385
NSMutableArray *allKeys = [[userProps allKeys] mutableCopy];
365386
for (NSString *key in allKeys) {
366387
// i.e. changeRequest.displayName = userProps[displayName];
@@ -405,12 +426,12 @@ - (NSDictionary *) userPropsFromFIRUser:(FIRUser *) user
405426
@"refreshToken": user.refreshToken,
406427
@"providerID": user.providerID
407428
} mutableCopy];
408-
429+
409430
if ([user valueForKey:@"photoURL"] != nil) {
410431
[userProps setValue: [NSString stringWithFormat:@"%@", user.photoURL]
411432
forKey:@"photoURL"];
412433
}
413-
434+
414435
return userProps;
415436
}
416437

@@ -422,7 +443,7 @@ - (void) userPropsFromFIRUserWithToken:(FIRUser *) user
422443
if (error != nil) {
423444
return callback(nil, error);
424445
}
425-
446+
426447
[userProps setValue:token forKey:@"idToken"];
427448
callback(userProps, nil);
428449
}];

0 commit comments

Comments
 (0)