Не могу использовать массив-содержит-любой в Firebase. Это неприемлемое значение. Почему? - PullRequest
0 голосов
/ 15 апреля 2020

Я использую Firebase Backend, FireStore DB. У меня есть коллекция контактов. Есть много документов, и я хочу получить все документы, где phone поле, его массив, имеет любое из заданных значений.

Так вот код:

    const { db } = require('../../../admin')
const cleanPhoneNumber = require('../../../utilities/cleanPhoneNumber')

const getContactBy = async ({ phone }) => {
  const collectionRef = db.collection('contacts')

  if (phone) {
    const preparedPhones = phone.map((val) => `+${cleanPhoneNumber(val)}`)
    collectionRef.where('phones', 'array-contains-any', preparedPhones)
  }

  const contactId = await collectionRef.get().then((docRef) => docRef.id)
  return contactId
}

module.exports = getContactBy

Так что я передаю в мою функцию массив телефонов со строковыми значениями:

[ '79213333332' ]

Но я получаю сообщение об ошибке из базы данных firebase, что массив содержит любые, что недопустимо. Я не могу понять, почему.

Есть официальные документы firebase , которые я МОГУ использовать! Что не так со мной или документами Firebase?

enter image description here

1 Ответ

0 голосов
/ 15 апреля 2020

Возможно, вы используете старую версию клиентской библиотеки JavaScript. массив-содержащий-любой не был добавлен до версии 7.3.0 . Последняя версия - 7.14.0, поэтому обязательно обновите ее до последней версии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...