Firebase如何获取使用Push功能时生成的唯一ID

时间:2018-03-08 20:41:32

标签: android firebase

我有这个小问题:在我的实时我有一个孩子“用户”包含所有不同的用户,每个用户都有一堆属性用户(电子邮件,电话,姓名......)我把它设置到Firebase使用推送功能

ref.Child("User").push().setvalue(user)  

所以我的问题是当我将用户设置为实时

时如何获得唯一ID

我已经使用了使用电子邮件收听孩子的查询 datasnapshot.getkey(),但有时会返回我需要的ID = D,有时会返回第一个子用户

任何解决方案的家伙! enter image description here

2 个答案:

答案 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);