【问题标题】:What is getValue() method in Firebase?Firebase 中的 getValue() 方法是什么?
【发布时间】:2018-08-15 08:05:47
【问题描述】:

我正在使用 Firebase 在 android 中编写应用程序。我也是 Java 新手,最近我遇到了 Firebase 文档示例代码 (Java) 中提到的这段代码。

Post post = dataSnapshot.getValue(Post.class);

我知道 Post 是一个普通的旧 Java 对象 (POJO),但我没有得到另一段代码(在右侧)。它与Java中的序列化有关还是什么?一个例子将是一个很大的帮助。提前致谢。

【问题讨论】:

    标签: java android firebase firebase-realtime-database


    【解决方案1】:

    如果您使用以下代码行:

    Post post = dataSnapshot.getValue(Post.class);
    

    这意味着您正在使用 Java 包装类来添加和读取 Firebase 数据库中的数据。这也意味着您可以通过直接调用公共字段或使用公共 getter(如果您的文件被声明为私有字段)来获取 POJO 类中声明的字段的值。

    Firebase 数据库中的每个节点都是一个 Map,您还可以从该特定节点获取数据,也可以是 Map,如下所示:

    Map<String, Object> map = (Map<String, Object>) dataSnapshot.getValue();
    

    这样你就可以遍历地图并获取键和值。

    以更方便的方式,如果不想使用像 Post 类这样的 Java 包装类,您也可以直接从 DataSnapshot 对象访问属性。因此,假设您的数据库中有一个名为 id 的属性,要获取该属性的值,您可以像这样简单地使用 String 类:

    String id = dataSnapshot.child("id").getValue(String.class);
    

    不同之处在于添加了 child("id") 调用,这意味着您只能从 JSON 中获取 id 属性的值。

    【讨论】:

    • 一切都好吗,我可以帮助您了解其他信息吗?
    • 没有亚历克斯。我非常感谢你。这是一个很大的帮助。
    猜你喜欢
    • 2019-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多