我想将某些数据添加到Firebase作为数组。例如:
groups : ['a','b','c']
如何在Android中添加和读取Firebase中的数据?
答案 0 :(得分:4)
当你有这样的结构时,你实际上不应该使用数组来建模它。它看起来更像是我眼中的集。
在Firebase中,数据库集最好建模为密钥,因为它可以自动保证项目是唯一的。那么你的结构就变成了:
groups: {
"a": true,
"b": true,
"c": true
}
真正的价值只是标记,因为Firebase不允许您存储没有值的密钥。
现在要添加一个组,您可以使用Firebase的setValue()
功能:
DatabaseReference root = FirebaseDatabase.getInstance().reference();
DatabaseReference groupsRef = root.child("groups");
groupsRef.child("d").setValue(true);
答案 1 :(得分:0)
来自文档:
setValue() - 记录或更改存在值
如果您只想附加数据,可以使用updateChildren()
。
在Java中,如果我们知道数据类似于数组,则可以将其转换为List:
Firebase julieRef = new Firebase("https://SampleChat.firebaseIO-demo.com/users/julie/");
julieRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
GenericTypeIndicator<List<String>> t = new GenericTypeIndicator?<List<String>>() {};
List messages = snapshot.getValue(t);
if( messages === null ) {
System.out.println('No messages');
}
else {
System.out.println("The first message is: " + messages.get(0) );
}
}
// onCancelled...
});