2017-10-04 3 views
0

Cloud Firestoreでユーザーデータベースを作成したいと思います。電子メールは各ユーザーの一意のIDとして作成します。ユーザーはcollectionで、各ユーザーはdocumentです。ユーザーがFirestoreに存在することを確認してください

これは、ユーザーがログイン活動に存在している場合、私がチェックする方法です:

enter image description here

私の問題であることを、:あなたが見ることができるよう

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(); 

           } 
          }); 

データベースは、空でありますdocumentは決してnullではなく、データベースが空であっても大丈夫です。toastは、documentの文字列値が[email protected]であることを示しています。

これは正しい方法ですか?それを修正するために私は何ができますか?

答えて

5

このTaskの結果はDocumentSnapshotです。基礎となる文書が実際に存在するかどうかは、existsメソッドを介して利用できます。

文書が存在する場合は、getDataに電話してその内容を入手できます。

関連する問題