From 46bfa956409d80f171d73ea38335ea9632b29593 Mon Sep 17 00:00:00 2001 From: beachcamp Date: Wed, 4 Jan 2017 20:03:04 -0800 Subject: [PATCH] Added signInWithProvider and reauthenticateWithCredentialForProvider functionality for Twitter --- .../io/fullstack/firestack/FirestackAuth.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/android/src/main/java/io/fullstack/firestack/FirestackAuth.java b/android/src/main/java/io/fullstack/firestack/FirestackAuth.java index 489ce5b..676b27f 100644 --- a/android/src/main/java/io/fullstack/firestack/FirestackAuth.java +++ b/android/src/main/java/io/fullstack/firestack/FirestackAuth.java @@ -34,6 +34,7 @@ import com.google.firebase.auth.GetTokenResult; import com.google.firebase.auth.GoogleAuthProvider; import com.google.firebase.auth.FirebaseAuthException; +import com.google.firebase.auth.TwitterAuthProvider; class FirestackAuthModule extends ReactContextBaseJavaModule { private final int NO_CURRENT_USER = 100; @@ -153,6 +154,8 @@ public void signInWithProvider(final String provider, final String authToken, fi this.facebookLogin(authToken,callback); } else if (provider.equals("google")) { this.googleLogin(authToken,callback); + } else if (provider.equals("twitter")) { + this.twitterLogin(authToken,authSecret,callback); } else // TODO FirestackUtils.todoNote(TAG, "signInWithProvider", callback); @@ -215,6 +218,8 @@ public void reauthenticateWithCredentialForProvider(final String provider, final credential = FacebookAuthProvider.getCredential(authToken); } else if (provider.equals("google")) { credential = GoogleAuthProvider.getCredential(authToken, null); + } else if (provider.equals("twitter")) { + credential = TwitterAuthProvider.getCredential(authToken, authSecret); } else { // TODO: FirestackUtils.todoNote(TAG, "reauthenticateWithCredentialForProvider", callback); @@ -508,6 +513,30 @@ public void onFailure(@NonNull Exception ex) { }); } + @ReactMethod + public void twitterLogin(String Token, String Secret, final Callback callback) { + mAuth = FirebaseAuth.getInstance(); + + AuthCredential credential = TwitterAuthProvider.getCredential(Token, Secret); + mAuth.signInWithCredential(credential) + .addOnCompleteListener(new OnCompleteListener() { + @Override + public void onComplete(@NonNull Task task) { + if (task.isSuccessful()) { + FirestackAuthModule.this.user = task.getResult().getUser(); + userCallback(FirestackAuthModule.this.user, callback); + }else{ + // userErrorCallback(task, callback); + } + } + }).addOnFailureListener(new OnFailureListener() { + @Override + public void onFailure(@NonNull Exception ex) { + userExceptionCallback(ex, callback); + } + }); + } + // Internal helpers public void userCallback(FirebaseUser passedUser, final Callback callback) {