如何在 Firebase 中获取直接父键

Posted

技术标签:

【中文标题】如何在 Firebase 中获取直接父键【英文标题】:How do I get immediate parent keys in firebase 【发布时间】:2020-08-09 00:15:12 【问题描述】:

所以我正在尝试获取直接父键,它们实际上是“用户”数据库下的子键。

像这样,下划线的 -

我的代码如下-

    databaseReference.addChildEventListener(new ChildEventListener() 
        @Override
        public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) 
            for( DataSnapshot postSnapshot : dataSnapshot.getChildren()) 
                String  user = postSnapshot.getKey();
                list.add(user);

            

        

但它所做的只是返回下面的图像 -

【问题讨论】:

请登录用户。 相反,登录用户不必显示在列表中。必须显示其他用户。在这里找到了一些东西,但正则表达式返回了奇怪的数据***.com/questions/46949464/… 【参考方案1】:

首先你的数据库引用必须是这样的:

DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference().child("users");

这是您读取数据的方式:

ValueEventListener listener = new ValueEventListener() 
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) 

    for(DataSnapshot ds: dataSnapshot.getChildren())
      String  user = ds.getKey();
      list.add(user);

    
    

    @Override
    public void onCancelled(DatabaseError databaseError) 
        //log error
        Log.w(TAG, "loadPost:onCancelled", databaseError.toException());

    
;
databaseReference.addValueEventListener(listener);

【讨论】:

您刚刚编写了与我相同的代码,它返回用户名和密码,就像问题中发布的第二张图片一样 这是一个 ValueEvent 侦听器,而不是子侦听器。 和数据库参考? 对不起,我错过了最后一行...它有效..谢谢您..已接受您的回答..

以上是关于如何在 Firebase 中获取直接父键的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 java 从 Firebase 检索新添加的子项的父键

Google App Engine Datastore:如果父键未知,如何通过 ID/名称获取实体?

从嵌套字典中获取父键

如何从firebase存储中获取图片,图片的网址在firestore中。

我想通过特定的“存储桶/密钥”直接从数据库中获取Firebase数据

如何在 Firebase 中获取特定的 pushID?