对于某个区域,我希望我的用户注册并使用这两种方法进行验证:
他的电子邮件地址和电话号码。在电子邮件和电话被验证后,我用以下代码将电子邮件链接到电话:
mAuth.getCurrentUser().linkWithCredential(credential)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if(task.isSuccessful()) {
FirebaseUser user = task.getResult().getUser();
if(config.debugcode) {Log.e("LINKING successful",user.toString());
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplication());
prefs.edit().putBoolean("locked", false).apply();现在,Firebase使我可以检查电子邮件是否使用以下代码进行了验证:if (user.isEmailVerified()) { }
但是我如何检查,如果我的用户与链接的凭证(电子邮件到电话)已经验证了?
发布于 2018-10-20 10:26:03
使用FirebaseAuth.getInstance().getCurrentUser().sendEmailVerification()和FirebaseAuth.getInstance().getCurrentUser().isEmailVerified()
这可以让你知道电子邮件是否已经核实。阅读有关Firebase,这里。中的电子邮件和电话身份验证的更多信息
另外,请访问此链接,以了解如何使用此功能的更多信息。
更新
上面的代码帮助您识别用户是否已经验证了电子邮件,但是目前还没有方法可以确定用户是否已经确认了他的电话号码。
为此,您必须手动完成此操作,您可以做的是,当您验证OTP并允许用户使用电话号码登录时,您可以用布尔值'true`‘更新Json中的一个节点,它告诉您,该用户已经验证了他的号码。
现在,要查看哪个用户的电话号码已被验证,您可以运行如下代码:
DatabaseRef userRef = FirebaseDatabase.getInstance.getRef("users");
userRef.orderByChild("phoneVerified").equalTo(true).addListenerForSingleValueEvent(new ValueEventListener() {
if (dataSnapshot.getValue() != null){
//it means user already registered
//Add code to show your prompt
showPrompt();
}else{
//It is new users
//write an entry to your user table
//writeUserEntryToDB();
}
}https://stackoverflow.com/questions/52904384
复制相似问题