我们说我有这个JSON树:
"employees":[
{"firstName":"John", "lastName":"Doe"},
{"firstName":"Anna", "lastName":"Smith"},
{"firstName":"Peter","lastName":"Jones"}
]
我如何在Firebase中执行此操作?每当我在" employees"下创建一个名为" firstname"的对象时,它用" Firstname"替换上一个对象。
我之前使用过Parse的表格,但由于它被删除了,所以我需要帮助来学习这个令人困惑的事情。
我正在使用Android。
答案 0 :(得分:1)
您可能正在寻找DatabaseReference.push()
,这会在该位置下创建一个新的孩子。
var employeesRef = mDatabase.child("employees");
var newEmployeeRef = employeesRef.push()
newEmployeeRef.setValue(employee);
阅读更多相关信息的最佳位置请参阅appending data to a list in the Firebase documentation部分。
答案 1 :(得分:1)
Firebase数据库对列表或数组没有本机支持。如果我们尝试存储列表或数组,它实际上存储为一个“对象”,整数作为键名(see doc)。
{"employees":{
0:{"firstName":"John", "lastName":"Doe"},
1:{"firstName":"Anna", "lastName":"Smith"},
2:{"firstName":"Peter","lastName":"Jones"}
}
}
通过这种方式,firebase中的树将如下所示:
push()
使用Firebase术语我们可以说节点emloyees有三个子节点,ID分别为0,1,2。
但不建议在Firebase中使用整数ID保存数据(see this to know why)。 Firebase提供//create firebase ref using your firebase url
Firebase ref = new Firebase("https://docs-examples.firebaseio.com/android/saving-data/fireblog");
Firebase postRef = ref.child("posts");
Map<String, String> post1 = new HashMap<String, String>();
post1.put("author", "gracehop");
post1.put("title", "Announcing COBOL, a New Programming Language");
postRef.push().setValue(post1);
Map<String, String> post2 = new HashMap<String, String>();
post2.put("author", "alanisawesome");
post2.put("title", "The Turing Machine");
postRef.push().setValue(post2);
功能,每次将新子项添加到指定的Firebase参考时,该功能都会生成唯一ID。
以下是Firebase Android文档中的示例:
{
"posts": {
"-JRHTHaIs-jNPLXOQivY": {
"author": "gracehop",
"title": "Announcing COBOL, a New Programming Language"
},
"-JRHTHaKuITFIhnj02kE": {
"author": "alanisawesome",
"title": "The Turing Machine"
}
}
}
因此,在帖子节点中,我们将有两个具有自动生成ID的子项:
{{1}}