Good evening, I also think it's a good way out of this one, because even if you do not have an internet connection at the moment, I do not see any other way of sending the data instantly. I have some similar systems and APPs, though, do not use Google Firebase and MySql remote in an Amazon Cloud. In my case, an example of an Android APP, there is a synchronization to the database through a WebService that I developed and that makes the uploads and loads the information in the mobile in case of active connection keeping it always updated, however, in places where it has no internet connection it stores in a local "table" and sends it later, through an Android service that runs in the background, all transparently to the user. For me, it works well, I have already developed tax integration PDVs with a similar principle for the transmission of fiscal data.
To create records in the database works perfectly for me like this.
One caution you must have is to change the registry for two or more users at a time without it being updated on one or both PCs, if your system is multi-user . I've outlined this, in a way, by putting a field with the latest version of the registry edition in the database and if at the time of sending it to the server, the APP verifies that it is the same as the one loaded on the phone before the change and not to send a message to the user asking if he wants to subscribe or not. But that solved for me, it might not solve for you, it all depends on the need and functionality of the system you are creating.