Firebase 不会创建新用户

Posted

技术标签:

【中文标题】Firebase 不会创建新用户【英文标题】:Firebase does not create new user 【发布时间】:2021-11-13 10:32:11 【问题描述】:

我是 Firebase 的新手。最近我试图将用户保存到 Firebase 但我不能。当我生成 APK 并将其运行到真实设备(不是模拟器)上时,新用户不会将其添加到 Firebase 中。此外,没有显示错误。任务正确执行并转到 OTPActivity。这是我的完整代码:

公共无效保存用户()

    firebaseAuth.createUserWithEmailAndPassword(emailAddress.getText().toString(),password.getText().toString()).addOnCompleteListener(ChatUserSignUpActivity.this,new OnCompleteListener<AuthResult>() 
        @Override
        public void onComplete(@NonNull Task<AuthResult> task) 
            if(task.isSuccessful())
            
                FirebaseUser user = firebaseAuth.getCurrentUser();
                Intent intent = new Intent(ChatUserSignUpActivity.this, OTPActivity.class);
                intent.putExtra("phoneNum",emailAddress.getText().toString());
                startActivity(intent);
            
            else
            
                Toast.makeText(ChatUserSignUpActivity.this, task.getException().toString(), Toast.LENGTH_SHORT).show();
            
        
    );

请帮助我。提前致谢。

【问题讨论】:

我将从添加一个失败监听器开始,使用 addOnFailureListener。这可以告诉您,无论出于何种原因,任务是否失败,您可以记录原因。您能否更新代码,试一试并告诉我们失败侦听器是否提供任何信息? @GregorioPalamà 让我更新代码让你知道。 你的onComplete 被触发了吗? @AlexMamo onComplete 方法触发并正确转到另一个活动。 奇怪的是 onComplete 被触发了,但是你没有在 Firebase 的仪表板中看到用户。能否请您尝试调试应用程序,并查看任务的 AuthResult 中的内容? 【参考方案1】:

当您使用电子邮件和密码对用户进行身份验证时,不会将任何数据保存到 Firestore 或 Realtime Database 中。如果需要将数据库保存在数据库中,则需要为此编写代码。因此,一旦您的用户通过身份验证,您就可以从 FirebaseUser 对象中获取数据并将其写入您选择的数据库。

【讨论】:

我知道实时数据不会存储在 Firestore 中。我的问题是新电子邮件未列在身份验证-> 用户部分中。我观看了不同的视频,其中遵循了相同的代码结构,但在他们的情况下,电子邮件列在身份验证 -> 用户部分。 您是否设置了正确的安全规则? 是的,我设置了安全规则 还有一个想和大家分享的,我是在真机上运行应用的。 你说触发了onComplete。那么它肯定应该在验证时添加一个新用户,对吧?

以上是关于Firebase 不会创建新用户的主要内容,如果未能解决你的问题,请参考以下文章

使用firebase创建新用户时如何避免自动登录[重复]

如何在不退出的情况下使用 Firebase API 创建新用户? [复制]

Firebase Auth 使用来自不同类的文本输入创建新用户

Cloud Functions for Firebase - 创建新用户时写入数据库

NoSuchMethodError:创建新用户时尝试调用非函数,如 null: 'dart.global.firebase.auth'

iOS Firebase数据库安全性。创建新的应用程序用户:检查用户名的存在