And*_*rew 8 firebase firebase-authentication
如标题中所述,无论我如何尝试Facebook登录,该emailVerified字段始终为假.这是设计的吗?我现在已经阅读了整个firebase文档,似乎无法找到有关此内容的任何信息.只是为了确定:我尝试了4个不同的验证帐户,结果总是一样的.知道什么可能导致这种行为吗?
Google提供商电子邮件验证和Facebook电子邮件不被验证的原因是Google被视为受信任的提供商(您可以使用Google创建电子邮件帐户).让我们再看一个例子.如果您使用雅虎设置电子邮件,您将收到一封电子邮件:him@yahoo.com.如果您使用yahoo OAuth 2.0登录,则可以确定用户已经过验证,因为Yahoo是该电子邮件地址的实际所有者和颁发者.但是,您也可以使用相同的电子邮件创建Facebook帐户或其他帐户,如github或twitter,并使用您的电话号码或其他方式进行验证.在这种情况下,如果您使用Facebook登录,则不会验证电子邮件(Facebook不拥有或管理该电子邮件地址).通常,如果您希望在这种情况下验证电子邮件,您必须发送电子邮件验证(目前是实验性的,仅适用于网络和iOS,但最终应该发布到Android).
我提供的解决方案可能对OP无用,因为它去年被问到,但希望它可以帮助其他人.虽然我同意bojeil的回答,但真正的用户在使用Facebook登录时验证他们的Facebook电子邮件地址有点烦人.
我今天在Android上遇到了这个问题并应用了一个解决方法,因为isEmailVerified()如果条件总是丢错并将用户返回到登录页面,这里是从我的代码中提取的工作:
FirebaseUser  mUser = mAuth.getCurrentUser();
        if(!mUser.getProviders().get(0).equals("facebook.com")) {
            if (mUser.isEmailVerified()) {
                Intent mainIntent = new Intent(getActivity(), MainActivity.class);
                mainIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                mainIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                mainIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
                startActivity(mainIntent);
            } else {
                Snackbar.make(getView().findViewById(R.id.loginLayout), "Please verify your account!", Snackbar.LENGTH_LONG).show();
            }
        }else{
            Intent mainIntent = new Intent(getActivity(), MainActivity.class);
            mainIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            mainIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            mainIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
            startActivity(mainIntent);
        }
第一个If语句检查用户是否使用Facebook登录,如果是,则用户被带到MainActivity,如果不是,则isEmailVerified()电子邮件/密码用户正常调用该方法,而对于Google登录用户,则isEmailVerified()始终返回true.
Firebase 提供了“验证”电子邮件地址的流程,但尚未适用于所有平台。此功能不适用于 Android...事实上,人们甚至无法查询电子邮件是否已使用 Android 代码进行验证(即使您使用 Web 或服务器代码来执行验证)。
“预期”过程通常是:
如果您当前使用 Android 客户端,则无法启动步骤 2。
| 归档时间: | 
 | 
| 查看次数: | 3096 次 | 
| 最近记录: |