【问题标题】:Firebase, password reset keep getting error "An internal error has occured. [ Error code: 13 ]" androidFirebase,密码重置不断收到错误“发生内部错误。[错误代码:13]”android
【发布时间】:2016-05-26 15:49:33
【问题描述】:

我最近切换到了新的 Firebase。当我使用旧代码时,我能够毫无问题地重置用户电子邮件。现在有了新的firebase,我不断收到错误“发生内部错误。[错误代码:13]”。即使我在应用程序控制台上点击密码重置按钮,我也会在控制台上收到相同的错误消息。我还按照网站上有关如何重置用户密码的所有说明进行操作。

这是我的代码:

private void resetPassword() {
    String email = mEmailEditText.getText().toString();

    FirebaseAuth auth = FirebaseAuth.getInstance();

    auth.sendPasswordResetEmail(email)
        .addOnCompleteListener(new OnCompleteListener<Void>() {
            @Override
            public void onComplete(@NonNull Task<Void> task) {
                if (task.isSuccessful()) {
                    Toast.makeText(LoginActivity.this, R.string.sent_temp_password,
                        Toast.LENGTH_LONG).show();


                }
            }
        })
    .addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception e) {
            Log.i(TAG, e.getMessage());
        }
    });
}

任何关于为什么会发生这种情况的帮助将不胜感激!

【问题讨论】:

    标签: android firebase


    【解决方案1】:

    我最近也切换到了新的 Firebase 控制台。我在身份验证方面遇到了很多问题,我找不到任何解决方案。我在一个文件上备份了数据库和规则,然后我删除了 Firebase 项目并创建了一个新项目(从头开始,重新创建了 Firebase 项目,但我保存的数据库和规则除外进步)。有效。我想将 Firebase 项目从旧控制台转换到新的 Firebase 控制台会有很多问题。

    如果您没有找到任何其他解决方案,我建议您也这样做,这不会花费太长时间。

    【讨论】:

      【解决方案2】:

      在新的 Firebase 版本中,在对任何用户进行任何重大更改(更改用户的密码或电子邮件,或删除用户)之前,该用户必须最近登录过。所以为了保证有效的响应,你需要在调用 change 方法之前使用 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.");
      
                  //Here you can can insert your code
              }
          });
      

      【讨论】:

        【解决方案3】:

        只是为了澄清我的类似情况。这发生在所有用户身上。我对这个数据库没有太多投入。重建,并会回来,但奇怪的是它之前能够进行身份验证。请注意,我不是从旧的 Firebase 控制台转到新的控制台。这个项目是一个全新的控制台。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-02-17
          • 1970-01-01
          • 2016-05-14
          • 1970-01-01
          • 2017-11-11
          • 2016-12-30
          • 2016-10-15
          • 2021-12-04
          相关资源
          最近更新 更多