簡體   English   中英

firebase 模擬器數據未保存並從某些緩存中檢索

[英]firebase emulator data not saved and retrieved from some cache

從 firestore 模擬器獲取數據工作正常,手動添加文檔。

export const getMaterials = async (companyID: string): Promise<Material[]> => {
   const materials = await getDocs(collection(db, 
   `${COMPANIES}/${companyID}/materials`))
 return materials.docs.map<Material>((doc) => <Material>{ id: doc.id, ...doc.data() })
}

保存也返回成功但是數據沒有顯示在模擬器UI中但是從上面的function返回模擬器的記錄和新添加的記錄。

刷新應用程序和模擬器后數據消失。

 export const setMaterial = async (
  companyID: string,
  id: string
): Promise<any> => {
const docData = {
    companyID: companyID,
    id: id,
    name: name
  }
     const ret = await addDoc(collection(db, `${COMPANIES}/${companyID}/materials`), 
     docData)
     return ret
  } 

從模擬器中刪除文檔繼續從 getMaterial function 返回。再次直到重新啟動應用程序和模擬器。

知道這些來賓文檔保存在哪里以及為什么不保存到模擬器中。

相關: Firebase Firestore Emulator UI 未顯示任何數據,但應用查詢中正在返回數據

const config = {
  apiKey: 'AIz....3Jk1',
  projectId: 'local',
  authDomain: 'app.localhost.dev',
}

將 projectId 從本地更改為從命令獲取的當前項目

firebase projects:list

解決了問題

我遇到過同樣的問題。 我的碰巧是相似但有點不同的問題。

問題

我的應用程序是project-1的一部分,Firestore 是project-2的一部分。

我的愚蠢錯誤是試圖初始化 Firestore - getFirestore() - 使用project-1的配置將其連接到模擬器 - connectFirestoreEmulator 這導致了 OP 描述的相同問題。

長話短說

如果您通過getFirestore()連接到正確的 Firestore,請檢查兩次。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM