从 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 中,而是从上述函数返回模拟器中的记录和新添加的记录。
刷新应用程序和模拟器后数据消失。
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 函数返回。再次直到重新启动应用程序和模拟器。
知道这些 guest 文档保存在哪里以及为什么不保存到模拟器中。
最佳答案
相关:Firebase Firestore Emulator UI is not showing any data, but data is being returned in app query
const config = {
apiKey: 'AIz....3Jk1',
projectId: 'local',
authDomain: 'app.localhost.dev',
}
将projectId从本地更改为从命令获取的当前项目
firebase projects:list
问题已解决
关于firebase 模拟器数据未保存并从某些缓存中检索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70061592/