相关疑难解决方法(0)

如何使用Firebase身份验证首次检查用户是否正在登录

我正在使用Firebase数据库和Firebase身份验证,允许用户使用电子邮件/密码或Google登录进行登录.在登录活动中,我正在尝试检查用户是否登录Google,是第一次执行此操作还是不执行此操作.

如果这是他第一次签名,则会出现一个对话框并请求用户的年龄和性别; 如果不是,则不应出现对话框.

我遇到的问题是,如果用户使用Google登录,则始终会显示对话框,无论是否是第一次.

这是我的代码,我试图检查用户是否第一次登录:

   protected void updateActivity(FirebaseUser user) {
    Log.d(TAG ,"updateActivity(FirebaseUser) - Ini");

    final boolean[] exist = {false};

    if(user != null) {
        ArrayList<String> providers = (ArrayList<String>) user.getProviders();
       if(!providers.isEmpty() && providers.get(0).equals("google.com")) {
           username = user.getEmail().substring(0,user.getEmail().indexOf('@'));
           String userId = user.getUid();

           Query query = mRef.orderByChild("userName").equalTo(username);

           query.addValueEventListener(new ValueEventListener() {
               @Override
               public void onDataChange(DataSnapshot dataSnapshot) {
                   for(DataSnapshot userSnapShot :  dataSnapshot.getChildren()){

                       if (!userSnapShot.getKey().equals(null) && !userSnapShot.getKey().isEmpty()) {
                           exist[0] = true;
                           Intent i  =  new Intent(LoginActivity.this, HomeActivity.class);
                           startActivity(i);
                           finish();

                       }
                   }
               }

               @Override
               public void onCancelled(DatabaseError databaseError) …
Run Code Online (Sandbox Code Playgroud)

android firebase-authentication firebase-realtime-database

6
推荐指数
0
解决办法
927
查看次数