未捕获(承诺中)错误:FIRESTORE(4.10.1)内部声明失败:未知关系:包含数组

时间:2019-04-08 08:09:12

标签: node.js firebase google-cloud-firestore

当我调用网页时,我在浏览器中收到此错误消息 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
    })
}

1 个答案:

答案 0 :(得分:3)

version 6.0.0 of the Node.js SDK中引入了array-contains运算符。根据错误消息,您的生产服务器正在运行4.10.1,该服务器尚不支持阵列运算符。要解决此问题,您需要将服务器更新为Admin SDK版本6.0.0或更高版本。