Вероятно, вы имеете в виду Cloud Firestore, поскольку Firebase поддерживает автономную постоянную работу только для мобильных разработчиков, а не для веб-сайтов.
Как показывает ошибка, вам следует сначала позвонить enablePersistance()
, когда вы импортируете / ссылаетесь на Firestore.
Я использую его в приложении Angular и вызываю его в моем appModule:
@NgModule({
declarations: [AppComponent, CardComponent],
imports: [
BrowserModule,
AppRoutingModule,
AngularFireModule,
AngularFirestoreModule.enablePersistence(), <--
AngularFireAuthModule,
AngularFirestoreModule,
HttpClientModule
],
providers: [{ provide: FirebaseOptionsToken, useValue: environment.firebaseConfig }],
bootstrap: [AppComponent],
})
export class AppModule {}
После включения автономного сохранения Firestore будет кэшировать все доступные документы до определенного предела кэша (по умолчанию 40 МБ, но вы можете изменить это значение). Если лимит кэша достигнут, Firestore удалит самые старые документы.
Если вы хотите узнать больше о включении полных автономных операций CRUD для PWA, посмотрите здесь .
Круто то, что все изменения, сделанные в автономном режиме, будут автоматически синхронизированы с сервером с помощью Firestore из коробки.
ОБНОВЛЕНИЕ
Если ваше приложение имеет дело с конфиденциальной информацией и вы хотите обеспечить дополнительную безопасность, то вам нужно найти способ обойти требования Firestore, желая включить автономное сохранение в качестве первого метода.
Может быть, тогда вам следует подуматьспособ удалить импортированный модуль Firebase и затем импортировать его снова с помощью enablePersistence()
.
В Node.js, например:
var name = require.resolve('moduleName');
delete require.cache[name];