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