当我在上传帖子时尝试获取密钥时,我从push()收到了错误的postKey

时间:2019-02-14 07:22:58

标签: java android firebase firebase-realtime-database

当上传帖子时,我试图获取postKey并将其上传到dynamiclink,但是我遇到了错误的postKey(键中的前6个字符正确,然后其余错误)。上传帖子时如何获得正确的postKey?

这是我的帖子,包括正确的postKey:

post image

这就是我得到的 -LYelE9TdCU73qW1Xisc ,这也不是其他任何帖子的重点。

我的代码

String postKey = FirebaseDatabase.getInstance().getReference().child("posts").push().getKey();
        Log.i("postkey for dynamiclink",postKey);

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

在您的代码中,您正在使用postKey创建另一个push().getKey()

要检索数据库中已存在的密钥,请尝试以下操作:

  DatabaseReference reference = FirebaseDatabase.getInstance().getReference("posts");

reference.orderByChild("title").equalTo("test").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
  for(DataSnapshot datas: dataSnapshot.getChildren()){
     String keys=datas.getKey();
    }
 }
@Override
public void onCancelled(DatabaseError databaseError) {
    }
 });