使用VueFire从Firebase获取.key

时间:2017-08-06 04:30:24

标签: firebase vue.js vuefire

我正在尝试从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属性?

3 个答案:

答案 0 :(得分:1)

您是否尝试过使用此命令:

businesses['.key']

答案 1 :(得分:0)

非常简单的答案是你有json的“.key”键和“3021”作为它的值。但是在“.key”中你包含了“。”这指的是你提供空路径或可能是无效路径。

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

希望这个解释有所帮助!

答案 2 :(得分:0)

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

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