Чтобы сценарий 2 сработал, клиент Firebase должен будет записать данные на локальный диск, если нет соединения с сервером (это называется сохранением диска в клиентах Firebase). Затем, когда приложение перезапускается, оно считывает данные с диска и может повторить попытку отправки их на сервер.
Поскольку сценарий 2 не работает для вас, похоже, что сохранение диска не включено. Вы не указываете / не показываете, какую базу данных Firebase (Firestore или Realtime Database) вы используете. Но так как постоянство диска включено по умолчанию в Firestore, я собираюсь предположить, что это База данных в реальном времени. Чтобы узнать, как включить сохранение диска, см. https://invertase.io/oss/react-native-firebase/faqs/enabling-database-persistence