How an offline-first React Native app syncs with Firestore: pending state instead of a queue, tombstones for deletes and a pure last-write-wins merge.