【问题标题】:Cannot reference firebase data by push id无法通过推送 ID 引用 Firebase 数据
【发布时间】:2017-12-17 15:44:38
【问题描述】:

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

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

但我不断收到此错误消息;

错误:Firebase.child 失败:第一个参数是无效路径: “不明确的”。路径必须是非空字符串,并且不能包含“.”, “#”、“$”、“[”或“]”

【问题讨论】:

标签: javascript firebase firebase-realtime-database google-admin-sdk


【解决方案1】:

试试下面的代码:

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)

【讨论】:

  • 当帖子不存在时,任何一个选项都会添加帖子。不同之处在于,如果第二个选项确实已经存在,则第二个选项将保持未指定的帖子属性不变。
  • @FrankvanPuffelen 我完全同意你的观点,“当帖子不存在时,任何一个选项都会添加”。但是,我不同意你的第二个说法。这两个选项的作用完全相同,它们将保持帖子的未指定属性不变。唯一的区别是第二个选项确保密钥(-xyz1234567)是“字符串”类型,这在 Jalasem 的情况下会导致错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多