2

我正在尝试从 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财产?

4

3 回答 3

1

您是否尝试使用此命令:

businesses['.key']
于 2017-09-06T20:22:53.557 回答
0

如前所述,您不能查询名称中带有点的属性。从文档中,您需要改用内置orderByKey()过滤器:

export default {
  name: 'hello',
  firebase: {
    businesses: bdRef.equalTo('306').orderByKey()
  }
}
于 2017-09-06T20:35:22.773 回答
0

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

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

希望这个解释有帮助!

于 2017-08-07T03:10:59.763 回答