android - 如何检查电话号码是否已存在于 Firebase 身份验证中?

标签 android firebase firebase-authentication

这个问题在这里已经有了答案:





How can I detect if user first time in Firebase [duplicate]

(4 个回答)


3年前关闭。




我在我的 android 应用程序中使用了带有电话号码的 firebase 身份验证。但是firebase并没有像电子邮件密码认证那样为登录和注册提供不同的功能。如何检查用户是否已经存在?

最佳答案

在这种情况下,您可以做的是,将每个注册用户的电话号码存储在 phone 中。 Firebase 数据库的节点。

然后,当从电话号码签署新用户时,您可以在电话节点中运行检查电话号码是否存在。

将电话号码存储在名为 phone 的节点中在您的数据库中,您可以使用如下代码:

private void signInWithPhoneAuthCredential(PhoneAuthCredential credential){
        mAuth.signInWithCredential(credential).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                if(task.isSuccessful()){
                   // you may be using a signIn with phone number like this, now here you can save the phone number in your database
                 DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("phone");

                 ref.child(phoneNumber).setValue(phoneNumber);

                }
                else if(task.getException() instanceof FirebaseAuthInvalidCredentialsException) {
                        Toast.makeText(MainActivity.this, "OTP is incorrect", Toast.LENGTH_SHORT).show();
                }
            }
        });
    }

在上面的代码中,phoneNumber是您要注册的用户数。我也使用了相同的标题名称和值,即 phoneNumber本身。您可以根据需要使用名称或其他任何内容。

现在,当您注册一个新用户时,您应该在您的 phone 中运行检查。数据库中的节点,使用以下代码。您可以在上面的代码中为这个新方法添加实例。

boolean checkForPhoneNumber(String number){
  DatabaseReference ref = FirebaseDatabase.getInstance().getReference();

  ref.orderByChild("phone").equalTo(number).addListenerForSingleValueEvent(new ValueEventListener() {
                    @Override
                    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                        if(dataSnapshot.exists())
                          return true;
                        else
                          return false;
                    }

                    @Override
                    public void onCancelled(@NonNull DatabaseError databaseError) {

                    }
                });

}                

关于android - 如何检查电话号码是否已存在于 Firebase 身份验证中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52676825/

相关文章:

kotlin - 如何将 registerForActivityResult 与 StartIntentSenderForResult 契约(Contract)一起使用?

facebook - 如何解决facebook登录问题?

android - Vimeo 嵌入显示白屏/缺少进度条

Android模拟器sd卡突然只读(挂载失败?)

android - google map api中SHA1指纹的用法是什么

ios - 记录或调试 iOS 的 Firebase HttpMetric 跟踪调用(无需等待 12 小时)

javascript - 如何使用react和firebase向所有用户显示实时数据?

android - 当点击推送通知时,当应用程序关闭时,如何打开由 Firebase 发送的 url?

java - 重新验证用户。使用适用于 Android 的 FirebaseUI 身份验证

android - 像安卓的联系人屏幕一样查看