Firestore(Web 版本 9 模块化):getDocsFromCache 似乎不起作用

2024-02-25

我是 Firebase 新手,我发现从缓存中获取文档 https://firebase.google.com/docs/reference/js/firestore_?authuser=0#getdocsfromcache。我听说 firebase 将其版本更新到版本 9(模块化),我必须使用的不仅仅是query.get({source: "cache"}). But getDocsFromCache不适合我。每次我打电话getDocsFromCache,它不会抛出任何错误,但是snapshot.empty始终如此,因此我无法访问我的文档(集合)。

如果我必须手动缓存,如何?如果没有,我错过了什么?

谢谢。

import {
 ​collection,
 ​getDocs,
 ​getDocsFromCache,
 ​query,
} from 'firebase/firestore';
import { db } from '../firebase-config';

export const getReviews = async () => {
 ​const q = query(collection(db, 'review'));

 ​try {
   ​const snapshot = await getDocsFromCache(q);

   ​console.log(snapshot.empty);   // always true but not throwing any error

   ​snapshot.forEach((doc) => {
     ​/* ... */
   ​});

 ​} catch (e) {
   // never reach here
   ​const snapshot = await getDocs(q);

   /* ... */
 ​}
};

从文档上配置离线持久化 https://firebase.google.com/docs/firestore/manage-data/enable-offline#configure_offline_persistence:

对于 Web,默认情况下禁用脱机持久性。要启用持久性,请调用enablePersistence method.

因此,请确保在之后立即调用此函数来启用缓存初始化 Firebase 和 Firestore https://firebase.google.com/docs/firestore/quickstart#initialize:

import { enableIndexedDbPersistence } from "firebase/firestore"; 

enableIndexedDbPersistence(db);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Firestore(Web 版本 9 模块化):getDocsFromCache 似乎不起作用 的相关文章

随机推荐