【问题标题】:How to get the nested childrens of my Firebase如何获取我的 Firebase 的嵌套子级
【发布时间】:2017-04-19 01:49:11
【问题描述】:

我需要从这个键中获取我的数据库的孩子的孩子,

我附上一张照片以便更好地理解

我的参考

  public static DatabaseReference getPostLikedRef() {
    return FirebaseDatabase.getInstance()
            .getReference(Constants.POSTS_LIKED_KEY);
}
public static DatabaseReference getPostLikedRef(String postId) {
    return getPostLikedRef().child(getCurrentUser().getEmail()
            .replace(".", ","))
            .child(postId);
}


// post ref


 public static DatabaseReference getPostRef() {
    return FirebaseDatabase.getInstance()
            .getReference(Constants.POSTS_KEY);
}

【问题讨论】:

  • 为什么邮件中有逗号?
  • @cricket_007 供选择
  • @cricket_007 Firebase 数据库密钥不能包含句点。使用逗号作为替换是惯用的,因为逗号在电子邮件地址中无论如何都无效。
  • @Frank 还没有遇到过。我猜点符号会被解释为嵌套键?或者 Mongo 不支持键中的点
  • @FrankvanPuffelen 感谢您的回答,这是正确的,您澄清了疑问,很抱歉无法给出具体答案,我对此还是新手

标签: android firebase firebase-realtime-database nested parent-child


【解决方案1】:

请使用此代码:

DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("posts_liked").child(userEmail);
ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
    if (dataSnapshot != null) {
        @SuppressWarnings("unchecked")
        Map<String, Object> map = (Map<String, Object>) dataSnapshot.getValue();
        if (map != null) {
            //Do everything you want
        }
    }
}

@Override
public void onCancelled(DatabaseError databaseError) {}
};
ref.addListenerForSingleValueEvent(eventListener);

您需要的数据在 map 中。希望对您有所帮助。

【讨论】:

  • 很高兴为您提供帮助。干杯!
猜你喜欢
  • 1970-01-01
  • 2017-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-09
  • 2019-02-13
  • 2016-11-12
  • 2019-07-01
相关资源
最近更新 更多