带有Where子句中的Variable的Cloud Firestore查询不起作用。颤抖

时间:2019-05-02 06:17:02

标签: firebase flutter google-cloud-firestore

我已经声明了全局变量,并在应用程序的initState()函数中对其进行了定义。

但是稍后在Cloud Firestore查询的Where子句中使用该变量时,该查询将不起作用:

  

.where("email", isEqualTo: _userEmail.toString())

相反,查询与引号一起使用时有效:

  

.where("email", isEqualTo: "myemail@xyz.com")

Firestore.instance.collection('Matrimonial').where("email", isEqualTo: _userEmail.toString()).getDocuments();

不起作用

Firestore.instance.collection('Matrimonial').where("email", isEqualTo: "myemail@xyz.com").getDocuments();

工作

2 个答案:

答案 0 :(得分:1)

我找到了一种通过使用vuefire在where子句中使用变量参数的方法:

watch: {
    userProfile () {
      this.$bind('allUsers', this.$db.collection('users').where('institution', '==', this.userProfile.institution))
    }
  }

在这种情况下,由于不同的管理员登录并成为currentUser,因此他们只能看到其机构中的所有用户。

答案 1 :(得分:0)

迟来了,但我正在搜索或对此问题的答案,并使用字符串插值对我有用:

Firestore.instance.collection('Matrimonial').where("email", isEqualTo: `${_userEmail.toString()}`).getDocuments();