我可以调用Firebase中的方法来检查用户是否已验证电话号码吗?我已经可以正常进行所有工作(用户输入国家/地区代码/电话号码,自动输入OTP代码并开始适当的活动),但是我想检查用户是否已验证电话号码,以防万一他没有我想要的信息禁止他进行某些活动。
对于电子邮件,有isEmailVerified()
,但是对于电话验证,只有getPhoneNumber
方法。
答案 0 :(得分:0)
如果一切正常,这意味着用户拥有一部经过验证的电话,这应该是一个公理:“如果用户通过了注册电话活动,这意味着他的电话已经过验证,那么您无需再次进行检查”。
如果您确实需要检查电话是否已通过验证,则必须手动执行此操作。如果仅将Firebase用作后端,则需要保存每部经过验证的电话(例如:“ + 2136xxxxxx”:“ true” )。
如果您正在使用其他后端SQL,则可以创建具有列user
的表phoneIsVerified
,并在需要时对其进行更新。
答案 1 :(得分:0)
您可以通过-
检查userId或电话号码是否为空FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
if(firebaseUser.getUid() == null || firebaseUser.getPhoneNumber() == null){
// User is not logged in
}
已编辑
如果您希望用户通过电话验证再次登录,可以使用-
退出用户if(firebaseUser.getUid() != null){
// User is logged in
FirebaseAuth.getInstance().signOut();
}
答案 2 :(得分:0)
我不确定您的应用程序是否正常运行,但据我了解:用户可以在未经身份验证的情况下使用您的应用程序。但是,您希望未经身份验证的用户只能访问有限数量的功能。。
您在评论中提到,无论以前使用什么应用程序,用户都必须在每次新安装的应用程序中验证其电话号码。因此,您可以像这样使用SharedPreferences来发挥自己的优势:
// create a SharedPreferences object and reference it with "AUTH_STATUS"
SharedPreferences sharedPreferences = getSharedPreferences("AUTH_STATUS", Context.MODE_PRIVATE);
// create an editor object from your sharedpreferences object
SharedPreferences.Editor editor = sharedPreferences.edit();
// save your boolean value to a reference called "status"
editor.putBoolean("status", true);
// save changes
editor.apply();
要检索保存的布尔值,可以执行以下操作:
// create a SharedPreferences object and reference it with "AUTH_STATUS"
SharedPreferences sharedPreferences = getSharedPreferences("AUTH_STATUS", Context.MODE_PRIVATE);
// get saved boolean value, default value should be false
boolean ab = sharedPreferences.getBoolean("status", false);
要删除/重置SharedPreferences布尔值,只需将布尔值设置为false即可,如下所示:
// create a SharedPreferences object and reference it with "AUTH_STATUS"
SharedPreferences sharedPreferences = getSharedPreferences("AUTH_STATUS", Context.MODE_PRIVATE);
// create an editor object from your sharedpreferences object
SharedPreferences.Editor editor = sharedPreferences.edit();
// save your boolean value to a reference called "status"
editor.putBoolean("status", false);
// save changes
editor.apply();
我希望这会有所帮助。快活的编码!