在Android版Firebase中忘记密码
我相信他们是在Firebase中更改密码的一种方式,但这是用户忘记密码并可以分配新密码或使用电子邮件或SMS OTP重新进行身份validation的方式。 我检查了网络,但似乎无法find一个。
如果有什么办法可以实现,那么所有的函数调用都需要进行。 你能指导我一个例子吗?
这听起来像你想发送密码重置电子邮件。 从Firebase文档中查看此示例 :
FirebaseAuth.getInstance().sendPasswordResetEmail("user@example.com") .addOnCompleteListener(new OnCompleteListener() { @Override public void onComplete(@NonNull Task task) { if (task.isSuccessful()) { Log.d(TAG, "Email sent."); } } });
重置Android FireBase密码
Java文件
public class ResetPasswordActivity extends AppCompatActivity { private EditText inputEmail; private Button btnReset, btnBack; private FirebaseAuth auth; private ProgressBar progressBar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_reset_password); inputEmail = (EditText) findViewById(R.id.email); btnReset = (Button) findViewById(R.id.btn_reset_password); btnBack = (Button) findViewById(R.id.btn_back); progressBar = (ProgressBar) findViewById(R.id.progressBar); auth = FirebaseAuth.getInstance(); btnBack.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finish(); } }); btnReset.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String email = inputEmail.getText().toString().trim(); if (TextUtils.isEmpty(email)) { Toast.makeText(getApplication(), "Enter your registered email id", Toast.LENGTH_SHORT).show(); return; } progressBar.setVisibility(View.VISIBLE); auth.sendPasswordResetEmail(email) .addOnCompleteListener(new OnCompleteListener() { @Override public void onComplete(@NonNull Task task) { if (task.isSuccessful()) { Toast.makeText(ResetPasswordActivity.this, "We have sent you instructions to reset your password!", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(ResetPasswordActivity.this, "Failed to send reset email!", Toast.LENGTH_SHORT).show(); } progressBar.setVisibility(View.GONE); } }); } }); } }
XML文件
这个链接到文档应该帮助你:
文档
简而言之,Firebase有一个使用方法叫做changePassword,请点击链接来了解如何实现它。
复制和粘贴文件 :
FirebaseAuth auth = FirebaseAuth.getInstance(); String emailAddress = "user@example.com"; auth.sendPasswordResetEmail(emailAddress) .addOnCompleteListener(new OnCompleteListener() { @Override public void onComplete(@NonNull Task task) { if (task.isSuccessful()) { Log.d(TAG, "Email sent."); } } });
下面是简单的方法发送重置密码链接在用户的电子邮件地址与进展对话框(有时Firebase需要时间来完成重置密码请求,因为在客户端的互联网连接速度慢,所以进度对话框将有助于)
public void resetUserPassword(String email){ FirebaseAuth mAuth = FirebaseAuth.getInstance(); final ProgressDialog progressDialog = new ProgressDialog(ForgotPasswordActivity.this); progressDialog.setMessage("verifying.."); progressDialog.show(); mAuth.sendPasswordResetEmail(email) .addOnCompleteListener(new OnCompleteListener() { @Override public void onComplete(@NonNull Task task) { if(task.isSuccessful()){ progressDialog.dismiss(); Toast.makeText(getApplicationContext(), "Reset password instructions has sent to your email", Toast.LENGTH_SHORT).show(); }else{ progressDialog.dismiss(); Toast.makeText(getApplicationContext(), "Email don't exist", Toast.LENGTH_SHORT).show(); } } }).addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { progressDialog.dismiss(); Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_SHORT).show(); } }); }
如果Kotlin是你选择的语言,你可以使用这个:
val fAuth = FirebaseAuth.getInstance() fAuth.sendPasswordResetEmail(email).addOnCompleteListener({ listener -> if (listener.isSuccessful) { // Do something when successful } else { // Do something when not successful } })
- 用Kotlin将音频保存在Firebase上
- 如何创建需要find目标文档的Firestore事务
- FirebaseRecyclerAdapter – populateViewHolder不访问数据
- 使用Kotlin和Firebase通过onAuthStateChanged回调触发sendEmailVerification
- Google Firebase在Android应用中注销并忘记用户
- 无法将列表检索到Firebase数据库
- 来自firebase的recyclerview onClick getkey
- 加载图像从毕加索的Firebase存储到Infowindow的ImageView,毕加索只显示占位符
- Android随着日期时间的变化,但是又放了一次,Firebase只是返回过期的令牌