【问题标题】:Getting .key from Firebase using VueFire使用 VueFire 从 Firebase 获取 .key
【发布时间】:2018-01-13 16:11:30
【问题描述】:

我正在尝试从 firebase 节点获取单个密钥,但我无法从我现在拥有的代码中获取任何密钥。这是我的代码:

let app = Firebase.initializeApp(config)
let db = app.database()

let bdRef = db.ref()

export default {
  name: 'hello',
  firebase: {
    businesses: bdRef.orderByChild('.key').equalTo('306')
  }
}

执行此操作时出现此错误:

validation.js?5c80:234 未捕获错误:Query.orderByChild 失败:第一个参数是无效路径 =“.key”。路径必须是非空字符串,并且不能包含“.”、“#”、“$”、“[”或“]”`

当我使用我的代码执行此操作时:

businesses: bdRef.orderByChild('title').equalTo('Feather Animation Wood Carving Supplies')

它带有这个数组:

0:Object
.key:"3021"
address:"Hello Avenue"
city:""
description:"Wood carving tools and supplies. Please contact us by phone or internet."
email:"hi@gmail.com"
employees:"1"

如何获得.key 属性?

【问题讨论】:

    标签: firebase vue.js vuefire


    【解决方案1】:

    您是否尝试使用此命令:

    businesses['.key']
    

    【讨论】:

    • 问题不在于访问名为.key 的密钥,而是将其传递给orderByChild() 函数
    【解决方案2】:

    非常简单的答案是,您拥有带有“.key”键和“3021”作为其值的json。但是在“.key”中你已经包含了“。”这表示您提供的是空路径或可能是无效路径。

    因此,如果您将其命名为“key”或任何名称为“keyid”都会很酷,除非您按照错误提示包含 can't contain ".", "#", "$", "[", or "]"

    希望这个解释有所帮助!

    【讨论】:

      【解决方案3】:

      如上所述,您不能查询名称中带有点的属性。从documentation 开始,您需要使用内置的orderByKey() 过滤器:

      export default {
        name: 'hello',
        firebase: {
          businesses: bdRef.equalTo('306').orderByKey()
        }
      }
      

      【讨论】:

        猜你喜欢
        • 2017-10-17
        • 2018-03-12
        • 2017-07-31
        • 1970-01-01
        • 2018-10-22
        • 2017-09-11
        • 2018-04-14
        • 2018-01-19
        • 1970-01-01
        相关资源
        最近更新 更多