我正在阅读Firebase的documentation,我来到了这一部分:
function writeNewPost(uid, username, picture, title, body) {
// A post entry.
var postData = {
author: username,
uid: uid,
body: body,
title: title,
starCount: 0,
authorPic: picture
};
// Get a key for a new Post.
var newPostKey = firebase.database().ref().**child('posts')**.push().key;
我应该怎么理解?当前,我在想这是在说“从数据库的根开始,创建一个节点并将其访问密钥存储在变量中”。将子功能与“帖子”一起使用有什么用?我可以运行类似以下的代码并获得相同的结果。
var newPostKey = firebase.database().ref().push().key;
最佳答案
当在文档的其余代码示例的上下文中进行获取时,您的第二部分代码实际上并不会给出相同的结果(此处未显示)。
实际上,您显示的代码实际上根本不会在数据库中创建任何数据,因为如果没有将任何信息传递给push(),那么它只会返回对该位置的引用(带有唯一键),您以后可以编写该位置至。您省略的样本部分实际上执行了更新。
child()的API文档说:
获取指定相对路径处位置的引用。
该方法可帮助您建立参考的路径。在第二个示例中,如果不调用child(),则引用将位于数据库的根目录,而不是在“ / posts”目录下。虽然在两种情况下都将获得唯一密钥,但是其在数据库中的位置将有所不同(在此实际写入数据之后)。