### JUMPSTART TIPS FOR IMPLEMENTATION ###
Great article and thanks a lot for your help!
This video by Jay from Outsystems is also a must-watch:
https://www.youtube.com/watch?v=ygbu3AITS4k
It mentions the creation and addition platform config files into google-services.zip files into the mobile app, which contain the keys and IDs that make the RegisterDevice action able to tell FireBase what account to register to. I didn't try skipping it but I'm not sure how it would work without this (if it does let me know and I'll get rid of it!)
I got cordova errors, the problem was the path to the google-services zip files wasn't quite right and it has to match the android/apple app identifiers in the distribute/configure section (which also has to match the apple bundle ID). I
I used the same firebase and apple appID accounts for dev/stg/prd (we're not using testflight) so all these IDs match on the platforms and for deployment. You won't get messages mixing up between environments because the database holding the registrations is per-each outsystems server. This might not be the same for 'topics' you that might require separate pre-prod accounts, however we didn't use that.
NO DASHES in the app ID. This goes without saying because apple will complain if you try to put them in the bundle ID name (if memory serves) and then of course, it won't match. our domain names had dashes but the real URL doesn't seem to have to match the app IDs and the path of the zip in resources. So of course things won't match up if you try this. (of course, we have variants of domains without dashes). One of the later answers here also mentions the problem. This stymied me for a few days.
Good luck!