android - Firebase 检索/读取返回空值 - Android

标签 android json firebase firebase-realtime-database

使用 Firebase 文档检索数据:

ref.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot snapshot) {
        System.out.println(snapshot.getValue());
    }
    @Override
    public void onCancelled(FirebaseError firebaseError) {
        System.out.println("The read failed: " + firebaseError.getMessage());
    }
}); 

运行上面产生的:

{users={facebook:###############={posts={-KE8qg1VyPAwYj0uJDcn={status=update1}}, provider=facebook, displayName=Some Name}}}

创建类来表示用户:

@JsonIgnoreProperties(ignoreUnknown=true) //to ignore mapping issues
public class Users {

String status;
String displayName;
String provider;

public Users() {
        // empty default constructor
}

public String getStatus() {
    return status;
}

public String getName(){
    return displayName;
}

public String getProvider(){
    return provider;
}
}

使用以下尝试检索值:

ref.addChildEventListener(new ChildEventListener() {
        // Retrieve new posts as they are added to the database
        @Override
        public void onChildAdded(DataSnapshot snapshot, String previousChildKey) {
            Users newUser = snapshot.getValue(Users.class);
            System.out.println("Status: " + newUser.getStatus());
            System.out.println("Display Name: " + newUser.getName());
            System.out.println("Provider: " + newUser.getProvider());
        }

一切都返回空值?阅读并尝试了几个使用 for 循环遍历数据库的示例,但这些示例也失败了,所以我决定回到第一个版本。不确定哪种方式最适合这种情况?

最佳答案

现在返回数据。最终意识到会有太多嵌套,所以现在帖子位于一个单独的节点中。更改代码:

final Firebase userRef = rootRef.child("users/" + rootRef.getAuth().getUid());

到:

final Firebase userRef = rootRef.child("posts");

关于android - Firebase 检索/读取返回空值 - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36360779/

相关文章:

java - 有什么好的安卓开发ORM工具吗?

javascript - Mustache.js 转义 "/"

java - 从 JSON 解析 Map 和 String 不起作用

javascript - 在javascript中解析数据类型并将其转换为Json

ios - 仅使用客户端代码发送 Firebase 云消息

javascript - 重定向到另一个页面后 authData 为 null

java - Firebase 数据库获取节点值

android - 多个未决 Intent ?

android - Robolectric 和 Retrofit - 等待响应

java - 应用程序启动时间过长