Firestore 特定数据读取不适用于变量,但适用于静态值

塔尔沃·梅塞普

我正在尝试从 Firestore 数据库中查询特定文档。问题似乎是,如果我doc(id)静态添加它,它可以工作,但是对于变量,它甚至没有我静态测试的变量具有正确且完全相同的值。

我试图检索的User文档是/users集合节点/文档

read 是我用来检索数据的函数:

export default class GenericDB {
    constructor(collectionPath) {
      this.collectionPath = collectionPath
    }
    /**
       * Read a document in the collection
       * @param id
    */
    async read(id) {
      const result = await (await firestore())
        .collection(this.collectionPath)
        .doc(id)
        .get()

      const data = result.exists ? result.data() : null

      if (isNil(data)) return null

      this.convertObjectTimestampPropertiesToDate(data)
      return { id, ...data }
    }
}

这是我的 vuex 操作:

getUser: ({ commit }, userId) => {
    return new Promise((resolve, reject) => {
        //usin UsersDB() instead of Generic() because my UsersDB() has constructor with correct path to /users
        new UsersDB().read(userId).then(user => {
            //Empty user if userId value is from variable and not empty if I use static value
            resolve(user)
        })
    })
}

我确实说出来了:

mounted() {
  if (this.id) {
      //getUser function is declared inside ...mapActions('authentication', ['getUser'])
      this.getUser(this.id)
  }
}

更新 1:我确实使用逻辑运算符将静态字符串与我的变量进行了比较,结果发现变量userId末尾有空格。我不知道为什么以及它来自哪里。

没有错误只是空数据。我看不出这个简单的查询有什么问题。任何帮助表示赞赏!

塔尔沃·梅塞普

事实证明,如果我将它们与逻辑运算符进行比较,则 userId 并不完全相同。变量版本末尾有空格。

所以解决方案是使用 userId.replace(/\s/g, '')

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Firestore规则不适用于收集

适用于Android的Firebase云存储和Firestore上传

是否有适用于Firestore安全规则的模拟器?

找不到适用于Firestore Android的方法whereArrayContains()

适用于公共和私人收藏的Firebase Firestore安全规则

Firestore中“数组包含”查询不适用于引用

firestore身份验证规则:适用于Google登录的客户端

Firestore批量查询更新不适用于我

使用Firebase Admin SDK(NodeJS)将数据导入Firestore不适用于所有集合

Firebase:“错误:9 FAILED_PRECONDITION:Cloud Firestore API不适用于Cloud Datastore项目”

使用Firestore UI从Firestore检索数据并在RecyclerView中显示数据不适用于API 24+

Cloud Firestore不适用于iOS 扑

Firestore startAfter方法不适用于文档作为参考

Firestore安全规则:request.query.limit不适用于复合查询

静态文件不适用于GAE

机架静态不适用于地图

方法适用于文字值,但不适用于具有相同值的变量

Spark Sql 查询适用于硬编码值但不适用于变量

Firestore 规则适用于模拟器但不适用于网站

代码适用于静态 PHP 值,但不适用于动态变量

使用 firestore 在 for 循环中设置布尔值仅适用于列表中的一个对象

Firestore 数据库安全规则仅适用于模拟器

Firestore IN 运算符不适用于布尔运算符

rxjs distinct 不适用于 Firestore 查询

Firestore 查询适用于 flutter 但不适用于 node.js

仅适用于内容所有者和公共的 FireStore 安全规则

firebase 云函数 context.auth 字段是否适用于 firestore?

Firestore Multiprovider 不适用于身份验证

1 mb 大小限制是否适用于 Firestore 文档内的子集合?