Skip to content

Commit ed409a2

Browse files
committed
Implement reauthenticateWithCredentialForProvider for Android
1 parent 04e369f commit ed409a2

File tree

1 file changed

+35
-4
lines changed

1 file changed

+35
-4
lines changed

Diff for: android/src/main/java/io/fullstack/firestack/FirestackAuth.java

+35-4
Original file line numberDiff line numberDiff line change
@@ -187,10 +187,41 @@ public void onComplete(@NonNull Task<AuthResult> task) {
187187

188188
@ReactMethod
189189
public void reauthenticateWithCredentialForProvider(final String provider, final String authToken, final String authSecret, final Callback callback) {
190-
// TODO:
191-
FirestackUtils.todoNote(TAG, "reauthenticateWithCredentialForProvider", callback);
192-
// AuthCredential credential;
193-
// Log.d(TAG, "reauthenticateWithCredentialForProvider called with: " + provider);
190+
AuthCredential credential;
191+
192+
if (provider.equals("facebook")) {
193+
credential = FacebookAuthProvider.getCredential(authToken);
194+
} else if (provider.equals("google")) {
195+
credential = GoogleAuthProvider.getCredential(authToken, null);
196+
} else {
197+
// TODO:
198+
FirestackUtils.todoNote(TAG, "reauthenticateWithCredentialForProvider", callback);
199+
// AuthCredential credential;
200+
// Log.d(TAG, "reauthenticateWithCredentialForProvider called with: " + provider);
201+
return;
202+
}
203+
204+
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
205+
if (user != null) {
206+
user.reauthenticate(credential)
207+
.addOnCompleteListener(new OnCompleteListener<Void>() {
208+
@Override
209+
public void onComplete(@NonNull Task<Void> task) {
210+
if (task.isSuccessful()) {
211+
Log.d(TAG, "User re-authenticated with " + provider);
212+
FirebaseUser u = FirebaseAuth.getInstance().getCurrentUser();
213+
userCallback(u, callback);
214+
} else {
215+
userErrorCallback(task, callback);
216+
}
217+
}
218+
});
219+
} else {
220+
WritableMap err = Arguments.createMap();
221+
err.putInt("errorCode", NO_CURRENT_USER);
222+
err.putString("errorMessage", "No current user");
223+
callback.invoke(err);
224+
}
194225
}
195226

196227
@ReactMethod

0 commit comments

Comments
 (0)