1

Firebaseユーザー認証を使用してAndroidアプリケーションを開発しています。私が直面している問題は、ユーザーから電子メールとパスワードを取得し、そのユーザーをfirebaseに作成することです。ユーザーが入力したメールを確認していません。今私はリセットパスワード機能を実装したい。そのためFirebaseはresetPasswordメソッドを提供し、その特定のユーザにリセットパスワードメールを送信します。しかし、問題は、電子メールが存在しない場合、何をすべきかということです。ここで電子メールが存在しない場合のFirebaseリセットパスワード

は、私がFirebaseにユーザーを登録するために使用していたコードです:

private void registerUser(){ 

     //creating a new user 
     firebaseAuth.createUserWithEmailAndPassword("user email here", "user password here") 
       .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { 
        @Override 
        public void onComplete(@NonNull Task<AuthResult> task) { 

         //checking if success 
         if(task.isSuccessful()){ 
          //display some message here 
         }else{ 
          //display some message here 
         } 

        } 
       }); 

    } 

この機能のために利用可能な代替オプションがある場合は私に知らせてください。おかげさまで

答えて

1

下記のコードを試してみてください。助けてください、私はこれを使用しています。

private FirebaseUser user; 
user = FirebaseAuth.getInstance().getCurrentUser(); 
final String email = user.getEmail(); 
AuthCredential credential = EmailAuthProvider.getCredential(email,oldpass); 
user.reauthenticate(credential).addOnCompleteListener(new OnCompleteListener<Void>() { 
@Override 
public void onComplete(@NonNull Task<Void> task) { 
    if(task.isSuccessful()){ 
     user.updatePassword(newPass).addOnCompleteListener(new OnCompleteListener<Void>() { 
      @Override 
      public void onComplete(@NonNull Task<Void> task) { 
       if(!task.isSuccessful()){ 
        Snackbar snackbar_fail = Snackbar 
             .make(coordinatorLayout, "Something went wrong. Please try again later", Snackbar.LENGTH_LONG); 
             snackbar_fail.show(); 
        }else { 
         Snackbar snackbar_su = Snackbar 
              .make(coordinatorLayout, "Password Successfully Modified", Snackbar.LENGTH_LONG); 
              snackbar_su.show(); 
             } 
            } 
           }); 
        }else { 
          Snackbar snackbar_su = Snackbar 
            .make(coordinatorLayout, "Authentication Failed", Snackbar.LENGTH_LONG); 
          snackbar_su.show(); 
         } 
        } 
       }); 
      } 
} 
0

代わりに、Firebase Admin SDKを使用してユーザーのパスワードを変更することもできます。 documentation on updating user information

updateUser()メソッドでは、既存のユーザーのデータを変更できます。それは同様に更新するUserRecordプロパティを含むオブジェクトを更新するために、ユーザのためuidを受け入れる:

admin.auth().updateUser(uid, { 
    email: "[email protected]", 
    emailVerified: true, 
    password: "newPassword", 
    displayName: "Jane Doe", 
    photoURL: "http://www.example.com/12345678/photo.png", 
    disabled: true 
}) 
    .then(function(userRecord) { 
    // See the UserRecord reference doc for the contents of userRecord. 
    console.log("Successfully updated user", userRecord.toJSON()); 
    }) 
    .catch(function(error) { 
    console.log("Error updating user:", error); 
    }); 

で:

パスワードから文字列 - ユーザーの新しい生、unhashed password。少なくとも6文字以上である必要があります。

現在、Firebase Admin SDKのこの部分は、Node.jsでのみ使用できます。しかし、Node.jsサーバーがまだない場合は、Cloud Functions for Firebaseに機能を実装できます。

関連する問題