Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.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 无法按推送id引用firebase数据_Javascript_Firebase_Firebase Realtime Database_Google Admin Sdk - Fatal编程技术网

Javascript 无法按推送id引用firebase数据

Javascript 无法按推送id引用firebase数据,javascript,firebase,firebase-realtime-database,google-admin-sdk,Javascript,Firebase,Firebase Realtime Database,Google Admin Sdk,我正在尝试根据firebase中的帖子id更新帖子。 所以我有一个变量存储在这样的地方 var postID = -xyz1234567; firebase.database().ref('posts').child(postID).update({ blah: "blah", foo: 'bar' }) 但我不断地得到这样的错误: 错误:Firebase.child失败:第一个参数是无效路径: 未定义。路径必须是非空字符串,并且不能包含。, ,$,[或] 请尝试以下代码: var p

我正在尝试根据firebase中的帖子id更新帖子。 所以我有一个变量存储在这样的地方

var postID = -xyz1234567;
firebase.database().ref('posts').child(postID).update({
  blah: "blah",
  foo: 'bar'
})
但我不断地得到这样的错误:

错误:Firebase.child失败:第一个参数是无效路径: 未定义。路径必须是非空字符串,并且不能包含。, ,$,[或]

请尝试以下代码:

var postID = "-xyz1234567";
firebase.database().ref('posts').child(postID).update({
  blah: "blah",
  foo: 'bar'
})
或者它总是更好地做以下事情

var post = {};
post["-xyz1234567"] = {
  blah: "blah",
  foo: 'bar'
};
firebase.database().ref('posts').update(post)

与实际代码中的更新相关的postID在哪里?看起来postID不在同一范围内。这看起来像是语法错误var postID=-xyz1234567;post选项将在post不存在时添加post,而不是为您认为的post创建示例代码。不同之处在于,第二个选项将保留文章的未指定属性,如果它确实存在。@FrankvanPuffelen我完全同意你的观点,即任何一个选项都会在它不存在时添加文章。但是,我不同意你的第二种说法。这两个选项的作用完全相同,它们将保留未指定的post属性。唯一的区别是,第二个选项确保键-xyz1234567的类型为string,这在Jalasem的案例中导致了错误。