-
Notifications
You must be signed in to change notification settings - Fork 987
Closed
Labels
Description
[REQUIRED] Describe your environment
- Operating System version: iOS 13.5
- Browser version: Mobile Safari 13.1
- Firebase SDK version: 7.17.1
- Firebase Product: firestore (auth, database, storage, etc)
[REQUIRED] Describe the problem
Steps to reproduce:
I implement an Ionic/Cordova App with Angular Fire (5.4.2) and Firestore. The app receives data from bluetooth interface and stores data periodically in firestore. Firestore is configured using offline persistence. All works fine as long the app is in the foreground. But if it goes to the background firestore breaks without error. The app must be restarted to make firestore working again. I can certainly exclude a bluetooth interface failure. Data are also received in the background mode! This only happens in IOS - in Android storing the data works fine. Logging I have enabled:
[Log] [2020-07-31T06:38:47.274Z] @firebase/firestore: – "Firestore (7.17.1): IndexedDbPersistence" – "Starting transaction:" – "updateClientMetadataAndTryBecomePrimary" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:47.286Z] @firebase/firestore: – "Firestore (7.17.1): SharedClientState" – "SET" – "firestore_sequence_number_firestore/[DEFAULT]/testdatabase-fs/" – "148" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:47.400Z] @firebase/firestore: – "Firestore (7.17.1): SharedClientState" – "EVENT" – "firestore_sequence_number_firestore/[DEFAULT]/testdatabase-fs/" – "148" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:47.411Z] @firebase/firestore: – "Firestore (7.17.1): SimpleDb" – "GET" – "owner" – "owner" – "{\"ownerId\":\"2p7ftHDHtDrt4sqxeLfn\",\"allowTabSynchronization\":true,\"leaseTimestampMs\":1596177523178}" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:47.414Z] @firebase/firestore: – "Firestore (7.17.1): IndexedDbPersistence" – "Client '2p7ftHDHtDrt4sqxeLfn' is not zombied in LocalStorage" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:47.417Z] @firebase/firestore: – "Firestore (7.17.1): SimpleDb" – "PUT" – "clientMetadata" – "<auto-key>" – "{\"clientId\":\"2p7ftHDHtDrt4sqxeLfn\",\"updateTimeMs\":1596177527417,\"networkEnabled\":true,\"inForeground\":false}" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:47.454Z] @firebase/firestore: – "Firestore (7.17.1): SimpleDb" – "GET" – "owner" – "owner" – "{\"ownerId\":\"2p7ftHDHtDrt4sqxeLfn\",\"allowTabSynchronization\":true,\"leaseTimestampMs\":1596177523178}" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:47.458Z] @firebase/firestore: – "Firestore (7.17.1): SimpleDb" – "GET" – "owner" – "owner" – "{\"ownerId\":\"2p7ftHDHtDrt4sqxeLfn\",\"allowTabSynchronization\":true,\"leaseTimestampMs\":1596177523178}" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:47.459Z] @firebase/firestore: – "Firestore (7.17.1): IndexedDbPersistence" – "Client '2p7ftHDHtDrt4sqxeLfn' is not zombied in LocalStorage" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:47.463Z] @firebase/firestore: – "Firestore (7.17.1): SimpleDb" – "PUT" – "owner" – "owner" – "{\"ownerId\":\"2p7ftHDHtDrt4sqxeLfn\",\"allowTabSynchronization\":true,\"leaseTimestampMs\":1596177527462}" (cordova.js, line 1540)
[Info] 08:38:48,800 TC.FirebaseProviderService _writeMeasurementSegment entry a0e6f8ce2f84 (cordova.js, line 1540)
[Debug] 08:38:48,828 TC.FirebaseProviderService segmentDocument assembled - try write to hdjjsdhjs83j37r474jdh4/measurements/measurements/1596177334703_a0e6f8ce3a86_a0e6f8ce2f84/a0e6f8ce2f84 ... (cordova.js, line 1540)
[Info] 08:38:48,838 TC.FirebaseProviderService _writeMeasurementSegment exit (cordova.js, line 1540)
[Log] [2020-07-31T06:38:48.848Z] @firebase/firestore: – "Firestore (7.17.1): IndexedDbPersistence" – "Starting transaction:" – "Locally write mutations" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:48.859Z] @firebase/firestore: – "Firestore (7.17.1): SharedClientState" – "SET" – "firestore_sequence_number_firestore/[DEFAULT]/testdatabase-fs/" – "149" (cordova.js, line 1540)
[Info] 08:38:48,870 TC.FirebaseProviderService _writeMeasurementSegment entry a0e6f8ce3a86 (cordova.js, line 1540)
[Debug] 08:38:48,882 TC.FirebaseProviderService segmentDocument assembled - try write to hdjjsdhjs83j37r474jdh4/measurements/measurements/1596177334703_a0e6f8ce3a86_a0e6f8ce2f84/a0e6f8ce3a86 ... (cordova.js, line 1540)
[Info] 08:38:48,884 TC.FirebaseProviderService _writeMeasurementSegment exit (cordova.js, line 1540)
[Log] [2020-07-31T06:38:48.893Z] @firebase/firestore: – "Firestore (7.17.1): SharedClientState" – "EVENT" – "firestore_sequence_number_firestore/[DEFAULT]/testdatabase-fs/" – "149" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:49.017Z] @firebase/firestore: – "Firestore (7.17.1): SimpleDb" – "GET" – "owner" – "owner" – "{\"ownerId\":\"2p7ftHDHtDrt4sqxeLfn\",\"allowTabSynchronization\":true,\"leaseTimestampMs\":1596177527462}" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:49.026Z] @firebase/firestore: – "Firestore (7.17.1): IndexedDbPersistence" – "Client '2p7ftHDHtDrt4sqxeLfn' is not zombied in LocalStorage" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:49.046Z] @firebase/firestore: – "Firestore (7.17.1): SimpleDb" – "ADD" – "mutations" – "{}" – "{}" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:49.053Z] @firebase/firestore: – "Firestore (7.17.1): SimpleDb" – "PUT" – "mutations" – "<auto-key>" – "{\"userId\":\"yn4dKHMBQxPqGdG1RV6grcMuHkq2\",\"batchId\":5,\"localWriteTimeMs\":1596177528844,\"baseMutations\":[],\"mutations\":[{\"update\":{\"name\":\"pro…" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:49.065Z] @firebase/firestore: – "Firestore (7.17.1): SimpleDb" – "PUT" – "documentMutations" – "[\"yn4dKHMBQxPqGdG1RV6grcMuHkq2\",\"hdjjsdhjs83j37r474jdh4\\u0001\\u0001measurements\\u0001\\u0001measurements\\u0001\\u00011596177334703_a0e6f8ce3a86_a0e6…" – "{}" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:49.259Z] @firebase/firestore: – "Firestore (7.17.1): SharedClientState" – "SET" – "firestore_mutations_firestore/[DEFAULT]/testdatabase-fs/_5_yn4dKHMBQxPqGdG1RV6grcMuHkq2" – "{\"state\":\"pending\",\"updateTimeMs\":1596177529258}" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:49.267Z] @firebase/firestore: – "Firestore (7.17.1): IndexedDbPersistence" – "Starting transaction:" – "notifyLocalViewChanges" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:49.273Z] @firebase/firestore: – "Firestore (7.17.1): SharedClientState" – "SET" – "firestore_sequence_number_firestore/[DEFAULT]/testdatabase-fs/" – "150" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:49.415Z] @firebase/firestore: – "Firestore (7.17.1): SharedClientState" – "EVENT" – "firestore_mutations_firestore/[DEFAULT]/testdatabase-fs/_5_yn4dKHMBQxPqGdG1RV6grcMuHkq2" – "{\"state\":\"pending\",\"updateTimeMs\":1596177529258}" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:49.425Z] @firebase/firestore: – "Firestore (7.17.1): SharedClientState" – "EVENT" – "firestore_sequence_number_firestore/[DEFAULT]/testdatabase-fs/" – "150" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:49.539Z] @firebase/firestore: – "Firestore (7.17.1): SimpleDb" – "GET" – "owner" – "owner" – "{\"ownerId\":\"2p7ftHDHtDrt4sqxeLfn\",\"allowTabSynchronization\":true,\"leaseTimestampMs\":1596177527462}" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:49.544Z] @firebase/firestore: – "Firestore (7.17.1): IndexedDbPersistence" – "Client '2p7ftHDHtDrt4sqxeLfn' is not zombied in LocalStorage" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:49.592Z] @firebase/firestore: – "Firestore (7.17.1): IndexedDbPersistence" – "Starting transaction:" – "Get next mutation batch" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:49.601Z] @firebase/firestore: – "Firestore (7.17.1): SharedClientState" – "SET" – "firestore_sequence_number_firestore/[DEFAULT]/testdatabase-fs/" – "151" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:49.918Z] @firebase/firestore: – "Firestore (7.17.1): SharedClientState" – "EVENT" – "firestore_sequence_number_firestore/[DEFAULT]/testdatabase-fs/" – "151" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:50.145Z] @firebase/firestore: – "Firestore (7.17.1): SimpleDb" – "GET" – "owner" – "owner" – "{\"ownerId\":\"2p7ftHDHtDrt4sqxeLfn\",\"allowTabSynchronization\":true,\"leaseTimestampMs\":1596177527462}" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:50.152Z] @firebase/firestore: – "Firestore (7.17.1): IndexedDbPersistence" – "Client '2p7ftHDHtDrt4sqxeLfn' is not zombied in LocalStorage" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:50.299Z] @firebase/firestore: – "Firestore (7.17.1): IndexedDbPersistence" – "Starting transaction:" – "Get next mutation batch" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:50.313Z] @firebase/firestore: – "Firestore (7.17.1): SharedClientState" – "SET" – "firestore_sequence_number_firestore/[DEFAULT]/testdatabase-fs/" – "152" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:50.319Z] @firebase/firestore: – "Firestore (7.17.1): SharedClientState" – "EVENT" – "firestore_sequence_number_firestore/[DEFAULT]/testdatabase-fs/" – "152" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:50.322Z] @firebase/firestore: – "Firestore (7.17.1): SimpleDb" – "GET" – "owner" – "owner" – "{\"ownerId\":\"2p7ftHDHtDrt4sqxeLfn\",\"allowTabSynchronization\":true,\"leaseTimestampMs\":1596177527462}" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:50.324Z] @firebase/firestore: – "Firestore (7.17.1): IndexedDbPersistence" – "Client '2p7ftHDHtDrt4sqxeLfn' is not zombied in LocalStorage" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:50.492Z] @firebase/firestore: – "Firestore (7.17.1): Connection" – "Creating WebChannel: https://firestore.googleapis.com/google.firestore.v1.Firestore/Write/channel [object Object]" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:50.503Z] @firebase/firestore: – "Firestore (7.17.1): IndexedDbPersistence" – "Starting transaction:" – "Locally write mutations" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:50.505Z] @firebase/firestore: – "Firestore (7.17.1): SharedClientState" – "SET" – "firestore_sequence_number_firestore/[DEFAULT]/testdatabase-fs/" – "153" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:50.775Z] @firebase/firestore: – "Firestore (7.17.1): SharedClientState" – "EVENT" – "firestore_sequence_number_firestore/[DEFAULT]/testdatabase-fs/" – "153" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:51.004Z] @firebase/firestore: – "Firestore (7.17.1): SimpleDb" – "GET" – "owner" – "owner" – "{\"ownerId\":\"2p7ftHDHtDrt4sqxeLfn\",\"allowTabSynchronization\":true,\"leaseTimestampMs\":1596177527462}" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:51.012Z] @firebase/firestore: – "Firestore (7.17.1): IndexedDbPersistence" – "Client '2p7ftHDHtDrt4sqxeLfn' is not zombied in LocalStorage" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:51.154Z] @firebase/firestore: – "Firestore (7.17.1): SimpleDb" – "ADD" – "mutations" – "{}" – "{}" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:51.168Z] @firebase/firestore: – "Firestore (7.17.1): SimpleDb" – "PUT" – "mutations" – "<auto-key>" – "{\"userId\":\"yn4dKHMBQxPqGdG1RV6grcMuHkq2\",\"batchId\":6,\"localWriteTimeMs\":1596177530502,\"baseMutations\":[],\"mutations\":[{\"update\":{\"name\":\"pro…" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:51.180Z] @firebase/firestore: – "Firestore (7.17.1): SimpleDb" – "PUT" – "documentMutations" – "[\"yn4dKHMBQxPqGdG1RV6grcMuHkq2\",\"hdjjsdhjs83j37r474jdh4\\u0001\\u0001measurements\\u0001\\u0001measurements\\u0001\\u00011596177334703_a0e6f8ce3a86_a0e6…" – "{}" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:51.250Z] @firebase/firestore: – "Firestore (7.17.1): SharedClientState" – "SET" – "firestore_mutations_firestore/[DEFAULT]/testdatabase-fs/_6_yn4dKHMBQxPqGdG1RV6grcMuHkq2" – "{\"state\":\"pending\",\"updateTimeMs\":1596177531250}" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:51.256Z] @firebase/firestore: – "Firestore (7.17.1): IndexedDbPersistence" – "Starting transaction:" – "notifyLocalViewChanges" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:51.259Z] @firebase/firestore: – "Firestore (7.17.1): SharedClientState" – "SET" – "firestore_sequence_number_firestore/[DEFAULT]/testdatabase-fs/" – "154" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:51.274Z] @firebase/firestore: – "Firestore (7.17.1): SharedClientState" – "EVENT" – "firestore_mutations_firestore/[DEFAULT]/testdatabase-fs/_6_yn4dKHMBQxPqGdG1RV6grcMuHkq2" – "{\"state\":\"pending\",\"updateTimeMs\":1596177531250}" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:51.277Z] @firebase/firestore: – "Firestore (7.17.1): SharedClientState" – "EVENT" – "firestore_sequence_number_firestore/[DEFAULT]/testdatabase-fs/" – "154" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:51.285Z] @firebase/firestore: – "Firestore (7.17.1): SimpleDb" – "GET" – "owner" – "owner" – "{\"ownerId\":\"2p7ftHDHtDrt4sqxeLfn\",\"allowTabSynchronization\":true,\"leaseTimestampMs\":1596177527462}" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:51.287Z] @firebase/firestore: – "Firestore (7.17.1): IndexedDbPersistence" – "Client '2p7ftHDHtDrt4sqxeLfn' is not zombied in LocalStorage" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:51.421Z] @firebase/firestore: – "Firestore (7.17.1): IndexedDbPersistence" – "Starting transaction:" – "Get next mutation batch" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:51.434Z] @firebase/firestore: – "Firestore (7.17.1): SharedClientState" – "SET" – "firestore_sequence_number_firestore/[DEFAULT]/testdatabase-fs/" – "155" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:51.441Z] @firebase/firestore: – "Firestore (7.17.1): SharedClientState" – "EVENT" – "firestore_sequence_number_firestore/[DEFAULT]/testdatabase-fs/" – "155" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:51.444Z] @firebase/firestore: – "Firestore (7.17.1): SimpleDb" – "GET" – "owner" – "owner" – "{\"ownerId\":\"2p7ftHDHtDrt4sqxeLfn\",\"allowTabSynchronization\":true,\"leaseTimestampMs\":1596177527462}" (cordova.js, line 1540)
[Log] [2020-07-31T06:38:51.446Z] @firebase/firestore: – "Firestore (7.17.1): IndexedDbPersistence" – "Client '2p7ftHDHtDrt4sqxeLfn' is not zombied in LocalStorage" (cordova.js, line 1540)
[Info] 08:40:25,606 TC.FirebaseProviderService _writeMeasurementSegment entry a0e6f8ce2f84 (cordova.js, line 1540)
[Debug] 08:40:25,634 TC.FirebaseProviderService segmentDocument assembled - try write to hdjjsdhjs83j37r474jdh4/measurements/measurements/1596177334703_a0e6f8ce3a86_a0e6f8ce2f84/a0e6f8ce2f84 ... (cordova.js, line 1540)
[Info] 08:40:25,644 TC.FirebaseProviderService _writeMeasurementSegment exit (cordova.js, line 1540)
[Info] 08:40:25,862 TC.FirebaseProviderService _writeMeasurementSegment entry a0e6f8ce3a86 (cordova.js, line 1540)
[Debug] 08:40:25,890 TC.FirebaseProviderService segmentDocument assembled - try write to hdjjsdhjs83j37r474jdh4/measurements/measurements/1596177334703_a0e6f8ce3a86_a0e6f8ce2f84/a0e6f8ce3a86 ... (cordova.js, line 1540)
[Info] 08:40:25,900 TC.FirebaseProviderService _writeMeasurementSegment exit (cordova.js, line 1540)
[Info] 08:41:40,375 TC.FirebaseProviderService _writeMeasurementSegment entry a0e6f8ce2f84 (cordova.js, line 1540)
[Debug] 08:41:40,382 TC.FirebaseProviderService segmentDocument assembled - try write to hdjjsdhjs83j37r474jdh4/measurements/measurements/1596177334703_a0e6f8ce3a86_a0e6f8ce2f84/a0e6f8ce2f84 ... (cordova.js, line 1540)
[Info] 08:41:40,385 TC.FirebaseProviderService _writeMeasurementSegment exit (cordova.js, line 1540)
[Info] 08:41:40,385 TC.FirebaseProviderService _writeMeasurementSegment entry a0e6f8ce3a86 (cordova.js, line 1540)
[Debug] 08:41:40,387 TC.FirebaseProviderService segmentDocument assembled - try write to hdjjsdhjs83j37r474jdh4/measurements/measurements/1596177334703_a0e6f8ce3a86_a0e6f8ce2f84/a0e6f8ce3a86 ... (cordova.js, line 1540)
[Info] 08:41:40,387 TC.FirebaseProviderService _writeMeasurementSegment exit (cordova.js, line 1540)
Could be related to #3495
Relevant Code:
public writeMeasurementSegment(..., segment: MeasurementSegment): boolean {
this.logger.entry('_writeMeasurementSegment', segment.id.serialNumber);
...
const segmentDocument: AngularFirestoreDocument = this.afs.collection(pathToFsTDSensorMeasurements)
.doc('' + segment.id.starttimestamp);
this.logger.debug('segmentDocument assembled - try write to ' + pathToFsTDSensorMeasurements + ' ...');
segmentDocument.set(segmentDocumentItem).then(() => {
this.logger.entry('_handleSetSegmentDocumentSuccess', segment.id.starttimestamp);
this.logger.exit('_handleSetSegmentDocumentSuccess', segment.id.starttimestamp);
}).catch((reason) => {
this.logger.entry('_handleSetSegmentDocumentError', segment.id.starttimestamp);
this.logger.error(reason);
this.logger.exit('_handleSetSegmentDocumentError', segment.id.starttimestamp);
});
this.logger.exit('_writeMeasurementSegment');
After going into the background 'segmentDocument.set(...)' never resolves.