Firebase,密码重置不断收到错误“发生内部错误。[错误代码:13]”android

时间:2016-05-26 15:49:34

标签: android 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());
        }
    });
}

对于为什么会发生这种情况的任何帮助都将非常感谢!

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

在新的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
        }
    });

答案 2 :(得分:0)

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