当前位置: 首页 > 面试题库 >

如何将Firebase数据转换为Java对象…?

廉宇
2023-03-14
问题内容

使用Firebase库以Message(String, String)添加到表单中的表单将数据发送到服务器HashMap<String, Message>

例:

Firebase fb = new Firebase(URL);
Firebase msgRef = fb.child("finished");
HashMap<String, Message> msgList = new HashMap<>();
Message msg = new Message(m, n);
msgList.put(HASHKEY, msg);
msgRef.push().setValue(msgList);

使用Firebase方法接收数据时,addValueEventListener()以这种形式获取String

{ key = finished, value = {
    -Js9Rn0uttjYIGdcv8I1={Moosa={message=email, name=Kamran}},
    -Js9Vsmv6BnVzOzpl2L8={Moosa={message=msgs, name=Imran}}, 
    -Js9WtQ8yeDwVxQMFCZb={Moosa={message=samsung, name=Samad}}, 
    -Js9RarxoJPKn4RO2HaM={Moosa={message=Message, name=Moosa}}, 
    -Js9b6f75lwwbsqQNJz0={Moosa={message=Qmobile, name=Bilal}}, 
    -Js9aDxt8TlgTGUccuxu={Moosa={message=last, name=Moosa}}} }

如何将其转换为Message Object ..... ????


问题答案:

还有两种方法可以将数据从Firebase DataSnapshot中取出,而无需使用Map<String, Object>

第一种 方法DataSnapshot使用 遍历孩子 的方法

ref = new Firebase("https://my.firebaseio.com/messages").limitToLast(10);
ref.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for (DataSnapshot messageSnapshot: dataSnapshot.getChildren()) {
            String name = (String) messageSnapshot.child("name").getValue();
            String message = (String) messageSnapshot.child("message").getValue();
        }
    }

    @Override
    public void onCancelled(FirebaseError firebaseError) { }
});

在以上代码段中,我们getChildren()用来获取Iterable您的消息。然后,我们用于child("name")获取每个特定的子属性。

第二种方法是 使用内置的JSON-to-POJO序列化器/反序列化器
。发送消息列表时,其中的Message对象将序列化为JSON并存储在Firebase中。

要使它们再次退出,您必须做相反的事情:

ref = new Firebase("https://my.firebaseio.com/messages").limitToLast(10);
ref.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for (DataSnapshot messageSnapshot: dataSnapshot.getChildren()) {
            Message message = messageSnapshot.getValue(Message.class);
        }
    }

    @Override
    public void onCancelled(FirebaseError firebaseError) { }
});

在第二个代码段中,我们仍在使用getChildren()获取消息的方法,但是现在我们将其从JSON反序列化为一个Message对象。

对于使用最后一种方法的简单示例应用程序,请查看Firebase的AndroidChat示例。它还显示了如何有效地处理消息列表(提示:)FirebaseListAdapter



 类似资料:
  • 使用Firebase库以添加到中的形式向服务器发送数据 如何将其转换为消息对象....???

  • 我想将我的firebase数据对象映射到我的POJO。但是,我的firebase对象属性名是snake case,例如;“user_name”。我想在我的pojo上使用camelCase,例如;“用户名” 我找到了这样一个漂亮的答案,但是,我找不到任何关于snake_case到camelCase映射的示例。 我的波乔; 我使用下面的代码行进行映射。“content”匹配没有问题(有或没有@seri

  • 问题内容: 我希望能够从Java操作方法中的JSON字符串访问属性。只需说一下即可使用该字符串。下面是该字符串的示例: 在此字符串中,每个JSON对象都包含其他JSON对象的数组。目的是提取ID列表,其中任何给定对象都具有包含其他JSON对象的group属性。我将Google的Gson视为潜在的JSON插件。谁能提供某种形式的指导,说明如何从此JSON字符串生成Java? 问题答案: 我将Goog

  • 问题内容: 我想使用Python将JSON数据转换成Python对象。 我从Facebook API接收了JSON数据对象,我想将其存储在数据库中。 我当前在Django(Python)中的视图(包含JSON): 这可以正常工作,但是如何处理复杂的JSON数据对象? 如果能以某种方式将此JSON对象转换为Python对象以方便使用,会不会更好呢? 问题答案: 您可以使用和在一行中完成操作: 或者,

  • 本文向大家介绍如何将JSON数据转换为Python对象?,包括了如何将JSON数据转换为Python对象?的使用技巧和注意事项,需要的朋友参考一下 以下代码将json对象(字符串)转换为python对象(字典)。我们导入json模块,并使用json.loads()方法执行此操作。 示例 输出

  • 我试图将下面的Json数组转换为特定的Java对象。 编辑:更新了正确的JSON结构 下面是我目前使用的对象映射器: 然而,我在尝试反序列化com时出错。fasterxml。杰克逊。数据绑定。exc.MismatchedInputException:无法反序列化来自数组值