2017-10-04 98 views
0

我想在Cloud Firestore中创建用户数据库,并将电子邮件作为每个用户的唯一ID。用户应该在collection,每个用户是document检查用户是否存在于Firestore

这是我的检查,如果用户在登录活动存在:

FirebaseFirestore db = FirebaseFirestore.getInstance(); 
          final DocumentReference userRef = db.collection("users").document(email); 
          userRef.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() { 
           @Override 
           public void onComplete(@NonNull Task<DocumentSnapshot> task) { 
            if (task.isSuccessful()) { 
             DocumentSnapshot document = task.getResult(); 

             Toast.makeText(LoginActivity.this, task.getResult().toString(), 
               Toast.LENGTH_SHORT).show(); 

             if (document != null) { 
              //The user exists... 
             } 


             else { 
              //The user doesn't exist... 
              } 

             } 
            } 
            else 
             connectionErrorActivity(); 

           } 
          }); 

的数据库是空的,因为你可以看到:

enter image description here

我的问题是, document从不为空,即使数据库为空也很难。toast显示字符串值document是:[email protected]

这是正确的方法吗?我能做些什么来解决它?

回答

5

这个Task的结果是DocumentSnapshot。底层文档是否实际存在可通过exists方法获得。

如果文档确实存在,您可以致电getData查看其中的内容。