Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 子函数在Firebase中做什么?_Javascript_Database_Firebase_Firebase Realtime Database - Fatal编程技术网

Javascript 子函数在Firebase中做什么?

Javascript 子函数在Firebase中做什么?,javascript,database,firebase,firebase-realtime-database,Javascript,Database,Firebase,Firebase Realtime Database,我正在为Firebase阅读,我来到了这一部分: function writeNewPost(uid, username, picture, title, body) { // A post entry. var postData = { author: username, uid: uid, body: body, title: title, starCount: 0, authorPic: picture }; //

我正在为Firebase阅读,我来到了这一部分:

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;
我怎么能理解这一点?目前我认为这是在说“从数据库的根开始,创建一个节点并将其访问密钥存储在一个变量中”。使用带有“posts”的子函数有什么用?我可以像下面这样运行类似的代码并得到相同的结果

  var newPostKey = firebase.database().ref().push().key;

当从文档(这里没有显示)的其余代码示例上下文中获取第二位代码时,实际上不会给出相同的结果

实际上,您所展示的代码实际上根本不会在数据库中创建任何数据,因为如果没有向push()传递任何内容,那么它只会返回一个对您以后可以写入的位置(具有唯一键)的引用。您忽略的示例部分实际上执行了更新

API文档说明:

获取指定相对路径处位置的引用


该方法帮助您构建指向引用的路径。在第二个示例中,如果不调用child(),则引用将位于数据库的根目录下,而不是“/posts”下。虽然在这两种情况下您都会得到一个唯一的键,但它在数据库中的位置会有所不同(在您实际在数据库中写入数据之后)。

在文档中的其余代码示例(此处未显示)的上下文中,您的第二位代码实际上不会给出相同的结果

实际上,您所展示的代码实际上根本不会在数据库中创建任何数据,因为如果没有向push()传递任何内容,那么它只会返回一个对您以后可以写入的位置(具有唯一键)的引用。您忽略的示例部分实际上执行了更新

API文档说明:

获取指定相对路径处位置的引用


该方法帮助您构建指向引用的路径。在第二个示例中,如果不调用child(),则引用将位于数据库的根目录下,而不是“/posts”下。虽然在这两种情况下您都会得到一个唯一的密钥,但它在数据库中的位置会有所不同(在您实际在数据库中写入数据之后)。

我感谢您的反馈。我原以为别人看得太久,但我猜我错了,把事情说得断章取义。谢谢,下次我会记下来阅读参考资料。我感谢你的反馈。我原以为别人看得太久,但我猜我错了,把事情说得断章取义。谢谢,下次我会记下来阅读参考资料。