我的Firebase数据库存储格式如下。
{
key=3553: 3223,
value={
-KZMFwmCYKevESD6qtjD={
text=Hello I am,
timestamp=[
.sv: timestamp
],
imageUrl=,
senderId=yDapbI755tOD72ivfsdferOv1RIHMnAe03
}
}
}
但是在设置值存储在firebase数据库中时我就是这样做的。
String Temp = "{timestamp: [.sv: timestamp], imageUrl: , senderId: " + Utils.SET_HEADER_ID + ", text: " + strMessage + "}";
System.out.println("===== Temp String : " + Temp);
String key = mFirebaseDatabaseReference.child("threads/3333:3333").push().getKey();
mFirebaseDatabaseReference.child("threads/3333:3333").child(key).setValue(Temp);
正如我上面写的代码,我在Firebase数据库中添加了一个数据。但它会自动将DataSnapshot JsonObject包含在我的插入数据库格式之下,这是错误的。
DataSnapshot{
key=3333: 3333,
value={
-KZPfTKJhaCC4RkIj45P={
timestamp: [
.sv: timestamp
],
imageUrl: ,
senderId: yDapbI755tOD72ivOv1RIHMnAe03,
text: hiiiiiiiii
}
}
}
如何从Firebase的插入格式中删除此DataSnapshot?
答案 0 :(得分:1)
您无法将原始JSON值传递给Firebase。您必须在代码中构建数据结构:
Restaurant.order(:name).pluck(:name)
或者,您可以使用像Jackson这样的库来转换JSON介绍所需的嵌套地图结构。请参阅示例Nested Json to Map using Jackson。