java - Firebase 获取 child 的 child 的引用

标签 java android firebase firebase-realtime-database

enter image description here

正如您所看到的,每个帖子都有不同的Id(发布的用户ID),我正在尝试获取此子fx3RqooRMOVRaQHGas4OWQnFK593的引用,例如数据库引用将是这样的:

DatabaseReference myRef = FirebaseDatabase.getInstance().getReference().child("Posts").child("fx3RqooRMOVRaQHGas4OWQnFK593");

但我想要的是动态获取每个帖子 ID 的引用。

最佳答案

你有两个选择。

  1. 如果您想下载一篇帖子,那么您必须使用您的自定义帖子 ID。你不能使用pushId()。这样您就知道您要下载并显示哪篇文章。

如何创建自定义ID

FirebaseDatabase.getInstance().getReference().child("Posts")
        .addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                   HashMap<String, Object> post = (HashMap<String, Object>) dataSnapshot.getValue();
                   total= post.size();

                }
      }

然后创建自定义 ID

FirebaseDatabase.getInstance().getReference().child("Posts").child("post"+total).setValue(YourValue);

选项 2。

只需从帖子节点下载所有帖子,因为您必须..

FirebaseDatabase.getInstance().getReference().child("Posts")
        .addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                    for (DataSnapshot snapshot : dataSnapshot.getChildren()){
                        //here is your every post 
                        String key = snapshot.getKey(); 
                        Object value = snapshot.getValue();
                    }
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });

奖金 如果你想显示特定用户的帖子。 (我假设) 您可以将用户对象内的推送键存储在字符串 arrylist 中。然后一一称呼他们...

快乐编码:):)

关于java - Firebase 获取 child 的 child 的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46429529/

相关文章:

java - Selenium 网络驱动程序 : getText() returning empty String for h2 tag

android - 我该如何在计时码表的准确时间内播放声音?

java - InitiatingHeapOccupancyPercent 设置为 40 但旧代内存在 G1GC 中超过 60%

java - 无法将上下文从主 Activity 传递到 AsyncTask 以显示 AlertDialog - Android/Java

android - 在android中自定义一个CheckedTextView

java - 来自 Firebase 实时数据库的 equalTo 数据快照返回空值

ios - FirebaseUI-IOS 处理空 TableView 条件

ios - 从 Auth 数据库中删除匿名用户

java - 使用 selenium webdriver 计算网格中的行数

java - 来自字符串的位图