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

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

為什么 firestore where 子句與 state 不起作用?

為什么 firestore where 子句與 state 不起作用?

月關寶盒 2022-08-18 10:46:27
我正在嘗試使用 react js 中的 where 子句從 firestore 中過濾文檔。但是,當我在where子句中使用狀態變量時,它不起作用,但是當我提供實際字符串時,它開始工作不工作firebase.firestore().collection('Partners')    .where("Email",'==',this.state.currentUser).get().then( querySnapshot => {      querySnapshot.forEach(doc => {        this.setState({          Theatre:doc.data().Theatre        })    })})加工firebase.firestore().collection('Partners')    .where("Email",'==',"[email protected]").get().then( querySnapshot => {      querySnapshot.forEach(doc => {        this.setState({          Theatre:doc.data().Theatre        })    })})任何幫助將不勝感激。謝謝。編輯我甚至試過了,它正在成真。然而,where 子句不適用于狀態變量console.log(this.state.currentUser==='[email protected]')
查看完整描述

2 回答

?
慕尼黑5688855

TA貢獻1848條經驗 獲得超2個贊

可能是狀態變量有問題,如異步效應或任何其他可能的原因。setState


確保狀態變量具有值。為了保證安全,請在以下條件下運行此函數:currentUserif


if(this.state.currentUser){

 firebase.firestore().collection('Partners')

     .where("Email",'==',this.state.currentUser).get().then( querySnapshot => {

       querySnapshot.forEach(doc => {


         this.setState({

           Theatre:doc.data().Theatre

         })


     })

 })

}

對于調試,請嘗試通過控制臺記錄它。


查看完整回答
反對 回復 2022-08-18
?
RISEBY

TA貢獻1856條經驗 獲得超5個贊

React 狀態是異步的,您確實會在控制臺中獲取狀態值,但是當運行 firestore 查詢時,因為它也是異步的,因此您的狀態以某種方式被覆蓋,或者您的頁面正在刷新并再次設置狀態。

我遇到了同樣的問題,然后我檢查了我的頁面是否被刷新,并且即使我在控制臺中獲得了它,我也丟失了我設置的狀態.log(),但是當我的消防商店運行查詢時,那里沒有狀態。

您需要在此處提供完整的代碼,以便我們查看它。


查看完整回答
反對 回復 2022-08-18
  • 2 回答
  • 0 關注
  • 109 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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