From 20d209ebcfa6de6360bc0f13b2771cb88270abb8 Mon Sep 17 00:00:00 2001 From: Salakar Date: Sun, 16 Sep 2018 21:39:15 +0100 Subject: [PATCH] [android][auth] implement `AuthSettings` => `setAutoRetrievedSmsCodeForPhoneNumber` --- .../firebase/auth/RNFirebaseAuth.java | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/android/src/main/java/io/invertase/firebase/auth/RNFirebaseAuth.java b/android/src/main/java/io/invertase/firebase/auth/RNFirebaseAuth.java index 3f044b45..92bd3f50 100644 --- a/android/src/main/java/io/invertase/firebase/auth/RNFirebaseAuth.java +++ b/android/src/main/java/io/invertase/firebase/auth/RNFirebaseAuth.java @@ -31,6 +31,7 @@ import com.google.firebase.auth.FirebaseAuth; import com.google.firebase.auth.FirebaseAuthException; import com.google.firebase.auth.FirebaseAuthInvalidCredentialsException; import com.google.firebase.auth.FirebaseAuthProvider; +import com.google.firebase.auth.FirebaseAuthSettings; import com.google.firebase.auth.FirebaseUser; import com.google.firebase.auth.FirebaseUserMetadata; import com.google.firebase.auth.GetTokenResult; @@ -179,6 +180,33 @@ class RNFirebaseAuth extends ReactContextBaseJavaModule { } } + /** + * The phone number and SMS code here must have been configured in the + * Firebase Console (Authentication > Sign In Method > Phone). + * + * Calling this method a second time will overwrite the previously passed parameters. + * Only one number can be configured at a given time. + * + * @param appName + * @param phoneNumber + * @param smsCode + * @param promise + */ + @ReactMethod + public void setAutoRetrievedSmsCodeForPhoneNumber( + String appName, + String phoneNumber, + String smsCode, + Promise promise + ) { + Log.d(TAG, "setAutoRetrievedSmsCodeForPhoneNumber"); + FirebaseApp firebaseApp = FirebaseApp.getInstance(appName); + FirebaseAuth firebaseAuth = FirebaseAuth.getInstance(firebaseApp); + FirebaseAuthSettings firebaseAuthSettings = firebaseAuth.getFirebaseAuthSettings(); + firebaseAuthSettings.setAutoRetrievedSmsCodeForPhoneNumber(phoneNumber, smsCode); + promise.resolve(null); + } + @ReactMethod public void signOut(String appName, Promise promise) { FirebaseApp firebaseApp = FirebaseApp.getInstance(appName); @@ -731,7 +759,7 @@ class RNFirebaseAuth extends ReactContextBaseJavaModule { final FirebaseAuth firebaseAuth = FirebaseAuth.getInstance(firebaseApp); FirebaseUser user = firebaseAuth.getCurrentUser(); - if(!provider.equals("phone")) { + if (!provider.equals("phone")) { promise.reject( "auth/invalid-credential", "The supplied auth credential does not have a phone provider."