Получение.key из Firebase с использованием 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 Uncaught Ошибка: 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 ответа

Вы пытались использовать эту команду:

businesses['.key']

Очень простой ответ, что у вас есть json с ключом ".key" и "3021" в качестве значения. Но в ".key" вы включили "." что означает, что вы даете пустой путь или, возможно, неверный путь.

Так что, если вы назовете его "ключом" или любое имя как "ключом", это будет круто, если вы не включите, как говорится в вашей ошибке can't contain ".", "#", "$", "[", or "]"

Надеюсь, это объяснение помогло!

Как уже говорилось, вы не можете запросить свойство с точкой в ​​его имени. Из документации нужно использовать встроенную orderByKey() вместо фильтра:

export default {
  name: 'hello',
  firebase: {
    businesses: bdRef.equalTo('306').orderByKey()
  }
}
Другие вопросы по тегам