是否可以在firebase中查询多个字符串,或将数组存储到firebase数据库中?
我想获取不同节点的字符串值。这是我的结构:
msg {
msg1: "some string"
msg2: "another string"
msg3: "yet another"
}
我想获取这3条消息的值,我该如何实现?我是Firebase数据库基础的新手。
答案 0 :(得分:0)
要在一个节点上保存多个字符串,可以使用地图
Map<String,Object> map = new HashMap<>();
map.put("msg1","some string");
map.put("msg2","another string");
map.put("msg3","yet another");
yourRef.setValue(map);
要一起检索这些数据,您可以用这种方法来完成,创建一个pojo
public class DataPojo {
//Make sure this variables types match exactly your firebase variable names
private String msg1;
private String msg2;
private String msg3;
public DataPojo() {
}
public String getMsg1() {
return msg1;
}
public void setMsg1(String msg1) {
this.msg1 = msg1;
}
public String getMsg2() {
return msg2;
}
public void setMsg2(String msg2) {
this.msg2 = msg2;
}
public String getMsg3() {
return msg3;
}
public void setMsg3(String msg3) {
this.msg3 = msg3;
}
}
然后检索任何类似这样的消息
yourRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot snapshot: dataSnapshot.getChildren()){
DataPojo dp = snapshot.getValue(DataPojo.class);
String msg1 = dp.getMsg1();
String msg2 = dp.getMsg2();
String msg3 = dp.getMsg3();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
System.out.println("The read failed: " + databaseError.getCode());
}
});
yourRef是您要发布数据以及从中获取数据的位置。它是用这种方式创建的
DatabaseReference yourRef = FirebaseDatabase.getInstance().getReference();