我有这个小问题:在我的实时我有一个孩子“用户”包含所有不同的用户,每个用户都有一堆属性用户(电子邮件,电话,姓名......)我把它设置到Firebase使用推送功能
ref.Child("User").push().setvalue(user)
所以我的问题是当我将用户设置为实时
时如何获得唯一ID我已经使用了使用电子邮件收听孩子的查询
datasnapshot.getkey()
,但有时会返回我需要的ID = D,有时会返回第一个子用户
任何解决方案的家伙!
答案 0 :(得分:0)
试试这个:
DatabaseReference userRef=FirebaseDatabase.getInstance().getReference();
userRef.child("User").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot datas : dataSnapshot.getChildren()) {
String key=datas.getKey();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
上面会给你一个pushid。循环将在pushid内迭代,然后使用getKey()
你将能够获得pushid
答案 1 :(得分:0)
如果您想在setValue()
时使用推送ID,请执行以下操作:
DatabaseReference userRef = ref.child("User").push();
String pushId = userRef.getKey();
...
userRef.setValue(user);