Я получаю это сообщение об ошибке в своем браузере, когда я вызываю свою веб-страницу
Uncaught (in promise) Error: FIRESTORE (4.10.1) INTERNAL ASSERTION FAILED: Unknown relation: array-contains
Я использую FireStore. Самое смешное, что это работает на моем локальном компьютере и на онлайн-машине для разработчиков, но на онлайн-производственной машине (клоне машины для разработки) я получаю указанную выше ошибку.
Некоторое время назад Firestore представил новый способ запроса, который позволяет выполнять поиск в массиве (см. код ниже where("userIds", "array-contains", userId)
.
Все пакеты npm на машинах имеют одну и ту же версию.
Любая идея, где я могу искать различия?
код
import "firebase/firestore"
import firebase from "firebase/app"
export function fetch({ userId }) {
const db = firebase.firestore()
return db.collection("/collection")
.where("userIds", "array-contains", userId)
.get()
.then(querySnap => {
return querySnap.docs
})
.catch(err => {
console.error(err)
throw err
})
}
Оператор array-contains
был представлен в версия 6.0.0 пакета SDK для Node.js. Судя по сообщению об ошибке, ваш рабочий сервер работает под управлением версии 4.10.1, которая еще не поддерживает операторы массива. Для решения проблемы вам потребуется обновить сервер до версии Admin SDK 6.0.0 или более поздней.