firebase firestore离线持久性FirebaseError



我花了好几个小时来实现firestore离线持久性,因为它对我的应用程序的工作至关重要。我在我的应用程序中处理多个聊天,这是一个致命的错误,每次再次下载数据。

这是我的代码示例,它的根App.js文件是第一个被调用的文件:

....
//imports related to firebase
import * as firebase from "firebase";
import ApiKeys from "./constants/ApiKeys";

export default function App() {
//firebase project initialisation
if (!firebase.apps.length) {
firebase.initializeApp(ApiKeys);
var db = firebase.firestore();
db.settings({ experimentalForceLongPolling: true });
console.log("DB INITIALISED");
db.enablePersistence() //HERE IS THE PROBLEM
.catch((err) => {
if (err.code == 'failed-precondition') {
// Multiple tabs open, persistence can only be enabled
// in one tab at a a time.
// ...
} else if (err.code == 'unimplemented') {
// The current browser does not support all of the
// features required to enable persistence
// ...
}
})
};.....

API密钥是这样的:

const firebaseConfig = {
apiKey: "***",
authDomain: "***",
databaseURL: "https://***",
projectId: "***",
storageBucket: "***",
messagingSenderId: "***",
appId: "***",
measurementId: "***"
};
export default firebaseConfig;

我收到以下错误,我无法解决:

FirebaseError:您正在使用仅内存构建的Firestore。持久性支持只能通过@firebase/firestore bundle或firebase-firestore.js构建获得。

我已经安装了完整的"firebase"bundle和@firebase/firestore的访问权限,我已经检查过了,并像在官方文档中一样实现了它。一切工作,但当我想启用持久性…它会崩溃并出现上面提到的错误。

我现在能做什么?我是不是又漏了一个包裹,我是不是做错了什么?

作为旁注,身份验证持久性在我的应用程序中工作得很好,只是firestore持久性失败了。

当前使用firebase SDK 8.2.3

我用Expo开发了我的应用程序,并指向Expo -firestore-offline-persistence。我注意到在他们的页面上,他们谈到了react-native-firebase在RN上启用持久性——尽管这似乎需要从Expo中弹出。

似乎这是RN平台上的polyfill的问题。换句话说,Firestore需要的Javascript在React Native平台上并不具备所有必需的东西——而普通浏览器将具备这些东西。所以"修复"是利用像react-native-firebaseexpo-firestore-offline-persistence这样的组件,为您提供本机的额外功能。

相关内容

最新更新