【问题标题】:Jump to Firebase parent Nodes from Child Nodes从子节点跳转到 Firebase 父节点
【发布时间】:2019-09-10 20:32:56
【问题描述】:

大家好,我有这样的火基结构

Firebase Database

我在 fire-base 的一个节点中有一个数组列表,我需要遍历这个列表并跳转到每个 ID 以获取我需要的信息,如数据库照片所示。

到目前为止我已经尝试过什么

public static void checkIfCurrentUserLiked(final HomeFragment.PostsViewHolder postsViewHolder, String postKey) {

        userID = Objects.requireNonNull(FirebaseAuth.getInstance().getCurrentUser()).getUid();
        likesRef = FirebaseDatabase.getInstance().getReference().child("likes");
        postsRef = FirebaseDatabase.getInstance().getReference().child(postKey);
        postsRef.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                if (dataSnapshot.hasChild("likes")) {
                    for (DataSnapshot ds : dataSnapshot.child("likes").getChildren()) {
                        likesRef.child(Objects.requireNonNull(ds.getValue()).toString())
                                .addValueEventListener(new ValueEventListener() {
                                    @Override
                                    public void onDataChange(@NonNull DataSnapshot snapshot) {
                                        Like like = snapshot.getValue(Like.class);
                                        if (like != null && like.getLikedUserID().equals(userID)) {
                                            postsViewHolder.likesImage.setImageResource
                                                    (R.drawable.ic_item_home_post_like_filled);
                                        }
                                    }
                                    @Override
                                    public void onCancelled(@NonNull DatabaseError databaseError) { }
                                });
                    }
                }
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) { }
        });
    }

我没有错误,只是没有任何反应,没有按预期获取数据

【问题讨论】:

  • 你遇到了什么错误?
  • 其实没有错误,就是什么都不做
  • 你能添加一个日志并告诉我正在检索哪些数据
  • 您是否尝试记录databaseError?它是在 logcat 中打印出来的吗?请回复@AlexMamo
  • @MustafaBahaa 你试过答案了吗?

标签: android firebase firebase-realtime-database


【解决方案1】:

改变这个:

postsRef = FirebaseDatabase.getInstance().getReference().child(postKey);

进入这个:

postsRef = FirebaseDatabase.getInstance().getReference().child("posts").child(postKey);

根据您的数据库,您在postKey 之前有节点posts,因此您需要在引用位置时添加它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-16
    • 1970-01-01
    • 2015-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多