在Firebase中使用电话号码注册并登录

时间:2020-08-30 04:34:16

标签: java android firebase firebase-authentication

我是Android的新手,关于何时通过电话身份验证创建新用户帐户的问题也很少。我为用户注册创建了注册活动和OTP活动。用户注册后,我将获得用户的信息,并在5 Activity之后将数据存储到Firebase。我可以在Firebase中查看用户的详细信息和电话号码。

这是我的OTP页面:

  private void signInWithPhoneAuthCredential(PhoneAuthCredential credential) {

    FirebaseAuth firebaseAuth = FirebaseAuth.getInstance();

    firebaseAuth.signInWithCredential(credential)
            .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if(task.isSuccessful()){
                        
                        Intent intent = new Intent(B_Verification_Activity.this, C_Name_Activity.class);
                        intent.putExtra("userPhone", comp_phoneNumber);
                        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
                        startActivity(intent);
                    }
                    else{
                        return;
                    }
                }
            });
}

这是我最后一次将数据存储在Firebase中的活动:

  public void storeNewUserData() {
    rootNode = FirebaseDatabase.getInstance();
    String userId = firebaseAuth.getCurrentUser().getUid();
    reference = rootNode.getInstance().getReference().child("Kullanıcılar").child(user_Gender.toString()).child(userId);

    UserHelperClass addNewUser = new UserHelperClass(user_phoneNumber, user_FirstName, user_Gender, user_Birthdate, user_Hobbies);
    reference.setValue(addNewUser);
}

但是我不知道用户如何使用电话号码登录。在注册页面中,我只是验证了电话号码。我不知道是否在“注册活动”中创建了用户。我想在OTP活动中创建用户。还有其他我要写的代码吗?

我的英语不是很好,谢谢您的帮助。

1 个答案:

答案 0 :(得分:2)

Firebase电话身份验证中没有注册或登录功能。实际上,他们只是获取用户的电话号码并使用一次性密码进行验证。实际上是电话号码验证。 换句话说,如果电话号码是新的,则在验证后会创建一个新的用户帐户。但是,如果回访的用户验证了他/她的号码,则只需登录即可。您可能要在这里做一件事:
您可能要检查用户是新用户还是旧用户,然后从返回的实时数据库/实时存储中获取数据。您可能还将新用户的数据发送到数据库,在这种情况下,如果他们是首次用户,则可以发送他们的数据。 为了帮助您解决此问题,Firebase Android SDK中有一个名为isNewUser()的函数,如果他们是首次验证(登录)其编号,则该函数返回布尔值true。您可以从here中详细了解该功能。