我是 firebase身份验证的新手..所以,我正在创建一个带有个人资料的基本应用,我已经开展了一项活动来编辑用户的基本信息,例如{{1 }}和DisplayName
...,我不想添加更改密码的功能,但首先,我不想检查当前用户的密码,并将其与Email
进行比较。 1}}用户在更改之前必须知道他当前的密码。
编辑:
我要问的是,我要求用户写下他当前的String
,以便能够将其更改为新的,以减少黑客攻击或类似的事情,例如在InputEditText
时我正在尝试更改Password
或Facebook
甚至是Email
它会询问您当前的Password
。
答案 0 :(得分:4)
某些安全敏感操作(例如删除帐户,设置主电子邮件地址和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("user@example.com", "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."); } });