【问题标题】:Firebase child fails, path existsFirebase 孩子失败,路径存在
【发布时间】:2016-10-06 16:32:08
【问题描述】:

我试图在我的 Firebase 数据库中引用一个位置,但 .child() 失败并出现以下错误:

未捕获的错误:Firebase.child 失败:第一个参数是无效路径:“https://wooperate.firebaseio.com/comments-to/-KTLOwq-WK4VwMhG7Zz8/-KTPmJJtmZQa7ldWILks”。路径必须是非空字符串,并且不能包含“.”、“#”、“$”、“[”或“]”

它不仅是有效路径,而且还包含数据!

我是厚脸皮还是这只是 Firebase 中的一个错误?


编辑:这是触发错误的代码:

FIREBASE_REF.child('comments-to').child(post.id).child(comment.id);

变量说明:

  • FIREBASE_REF:对我的 firebase 数据库的根引用
  • post.id:Firebase 生成的 id
  • comment.id: Firebase 生成的 id Firebase 对评论的完整引用 ― 这是错误:(

以下情况不会触发任何错误:

FIREBASE_REF.child('comments-to').child(post.id);

如上所述,评论的路径存在并包含数据。

【问题讨论】:

  • 您登录comment.id 以确保它符合您的期望吗?
  • @mjr 是的,错误消息在路径中包含正确的注释 id 应该是无效的。
  • 真的很抱歉@mjr,真的是comment.id,就像你怀疑的那样。

标签: firebase firebase-realtime-database


【解决方案1】:

也许您的comment.id 为空或包含".", "#", "$", "[", or "]",如logcat 中所述。有时使用- 和以大写字母开头的节点也会导致此问题。可以使用comments-to 尝试改用commentsTo

【讨论】:

  • 我尝试将它(在 fontend 和 Firebase 中)从 comment-id 更改为 commentId,但没有任何区别。另外,如果您查看错误消息,则路径中没有无效字符。
【解决方案2】:

是的,我很厚。

我误解了错误信息。当然,非法参数是提供给child() 的参数:即comment.id,而不是调用.child(comment.id) 产生的引用(网址)。

错误的根源是我在设置comment.id时使用了snap.ref而不是snap.val

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-10
    • 2019-09-15
    • 1970-01-01
    • 1970-01-01
    • 2020-05-04
    • 2016-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多