2017-11-05 12 views
1

Firebase Realtime DatabaseからCloud Firestoreに移行しています。以前、私はリアルタイムデータベースの下.push()だろう、と次のように私は.push()のキーを取得します:クラッシュファイアストアへの.add()の後に.getKey()を実行できません

final String key = mBaseRef.child("ABC").push().getKey(); 

この方法は、新しいクラウドFirestoreで利用することができます表示されません。私はそのようにしようとしています:

mStoreBaseRef.collection("ABC").add(pollMap).addOnCompleteListener(new OnCompleteListener<DocumentReference>() { 
    @Override 
    public void onComplete(@NonNull Task<DocumentReference> task) { 
     String key = String.valueOf(mStoreBaseRef.collection("ABC").document().getId()); 
     Log.v("KEY", key); 
     Toast.makeText(getApplicationContext(),key,Toast.LENGTH_LONG).show(); 
    } 
} 

ログは単に作成されたキーを返していません。

答えて

1

完了タスクの結果として、追加されたドキュメントへの参照が返されます。文書IDは、それから提供されています:あなたが自動生成されたIDを返します

DocumentReference key = db.collection("ABC").document(); 

これで

final String key = mBaseRef.child("ABC").push().getKey(); 

を置き換えることができます

mStoreBaseRef.collection("ABC").add(pollMap) 
      .addOnCompleteListener(new OnCompleteListener<DocumentReference>() { 
     @Override 
     public void onComplete(@NonNull Task<DocumentReference> task) { 
      if (task.isSuccessful()) { 
       DocumentReference docRef = task.getResult(); 
       String key = docRef.getId(); 
       Log.v("KEY", key); 
       Toast.makeText(getApplicationContext(), key, Toast.LENGTH_LONG).show(); 
      } 
     } 
    }); 
+0

感謝ブラザ – tccpg288

0

。 その後、としてそれを後で参照することができます

key.set(data); 

それともとしてFirebaseプッシュIDを取得できます。

key.getId(); 
関連する問題