我是firebase身份验证的新手..所以,我正在创建一个带有个人资料的基本应用程序,我已经开始编辑用户的基本信息,如DisplayName
和Email
...,我不想添加更改密码的能力,但首先,我不想检查当前用户的密码,并将其与String
中的InputEditText
进行比较,用户在更改密码之前必须知道他当前的密码。
编辑:我问的是我要求用户写他当前的Password
,以便能够将其更改为新的,以减少黑客或类似的东西,如Facebook
,当你试图改变Email
或Password
甚至Name
它会询问您当前的Password
。
某些安全敏感操作(例如删除帐户,设置主电子邮件地址和changing a password)要求用户最近登录。
如果您执行其中一个操作,并且用户很久以前已登录,则操作将失败并抛出
FirebaseAuthRecentLoginRequiredException
。发生这种情况时,通过从用户获取新的登录凭据并将凭据传递给reauthenticate来重新验证用户身份。例如:FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser(); // Get auth credentials from the user for re-authentication. The example below shows // email and password credentials but there are multiple possible providers, // such as GoogleAuthProvider or FacebookAuthProvider. AuthCredential credential = EmailAuthProvider .getCredential("[email protected]", "password1234"); // Prompt the user to re-provide their sign-in credentials user.reauthenticate(credential) .addOnCompleteListener(new OnCompleteListener<Void>() { @Override public void onComplete(@NonNull Task<Void> task) { Log.d(TAG, "User re-authenticated."); } });