Angular 9 Firebase, сериализация и сохранение ссылки на коллекцию из снимка в indexedDB - PullRequest
0 голосов
/ 23 февраля 2020

Я пытаюсь выяснить, можно ли сериализовать и сохранить ссылку на коллекцию, которую я извлекаю из firebase (в indexedDB), для удобства добавления данных в нее позже.

Мой случай что при загрузке приложений данные из firebase сохраняются в indexedDB, а затем другие страницы / компоненты извлекают данные из indexedDB, вместо того, чтобы отправлять операции чтения в firebase для данных, которые меняются не очень часто, если вообще.

Я получаю коллекцию следующим образом: (Похоже, мне не хватает сохранить фактическую «DocumentReference», хотя и вызывает .ref для коллекции)

public getBusinessUnitCollection$(): Observable<Array<FireStoreBusinessUnitDocumentInterface>> {
return this.afStore.doc<BusinessUnitDataInterface>(`business/${this.afAuth.auth.currentUser.uid}`).collection<BusinessUnitDataInterface>('unit')
  .snapshotChanges()
  .pipe(
    map(
      actions => {
        return actions.map(a => {
          const data = a.payload.doc.data() as BusinessUnitDataInterface;
          const id = a.payload.doc.id;
          const exists = a.payload.doc.exists;

          *** Below is the reference, I have tried to serialize it with "json-stringify-safe" package,
          which works for the nested object, BUT I dont get access to 'update' and all the methods
          that is available on a original collection reference?

          const ref = stringify(this.afStore.doc<BusinessUnitDataInterface>(`business/${this.afAuth.auth.currentUser.uid}`).collection<BusinessUnitDataInterface>('unit').ref);

          return {
            ref,
            data,
            id,
            exists,
          };
        });
      }
    ));
}

Позже, когда я делаю JSON. анализируя свойство .ref сверху, при проверке с консоли я получаю следующее:

_query: {path: {…}, collectionGroup: null, explicitOrderBy: Array(0), filters: Array(0), limit: null}
firestore: {_firebaseApp: {…}, _queue: {…}, INTERNAL: {…}, _databaseId: {…}, _persistenceKey: " 
[DEFAULT]", …}
_path: {segments: Array(3), offset: 0, len: 3}
__proto__: Object

.update, .id et c не сохраняются: - /

Anyone Имеете опыт сохранения ссылки на коллекцию в виде сериализованной строки для последующего использования?

Спасибо: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...