当我调用网页时,我在浏览器中收到此错误消息
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
})
}
答案 0 :(得分:3)
version 6.0.0 of the Node.js SDK中引入了array-contains
运算符。根据错误消息,您的生产服务器正在运行4.10.1,该服务器尚不支持阵列运算符。要解决此问题,您需要将服务器更新为Admin SDK版本6.0.0或更高版本。