亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Vue 中使用 Firestore,.where 不返回任何結果 - 但它們存在

在 Vue 中使用 Firestore,.where 不返回任何結果 - 但它們存在

慕容3067478 2023-05-25 15:25:15
我對 Firestore 很陌生。我有這個查詢顯示聊天消息和新消息出現時的更新。我只希望當前用戶(學校)看到來自他們自己學校的消息。如果我不包含 .where 子句 - 它會顯示所有消息,但如果我使用它則不會顯示任何內容(即使它們存在)這是我的 firestore 頁面圖像的鏈接(因為我無法嵌入它):我在掛載上調用方法:mounted() {  //fetches the messages  this.fetchMessages(this.$route.params.id);},那么方法是:fetchMessages(schoolsIdentification) {  db.collection('chat')    .where("user.schoolId", "array-contains", schoolsIdentification)    .orderBy('date')    .onSnapshot((querySnapshot) => {      let allMessages = [];      querySnapshot.forEach(doc => {        allMessages.push(doc.data())      })      console.log("the all messages array length is:", allMessages.length)      this.messages = allMessages;    })}我在這里做錯了什么嗎?
查看完整描述

1 回答

?
慕少森

TA貢獻2019條經驗 獲得超9個贊

您的過濾器期望它user.schoolId是一個數組:

.where("user.schoolId",?"array-contains",?schoolsIdentification)

但它不是一個數組——它只是一個字符串。如果要過濾可能包含多個不同可能值的字符串字段,則應改用“in”查詢,如文檔中所示。

使用in運算符將同一字段上最多 10 個相等 (?==) 子句與邏輯或組合起來。in 查詢返回給定字段與任何比較值匹配的文檔。

.where("user.schoolId",?"in",?schoolsIdentification)


查看完整回答
反對 回復 2023-05-25
  • 1 回答
  • 0 關注
  • 146 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號