0
votes

I am working on a framework that uses firebase to receive push notifications. The framework is supposed to receive notifications from a firebase project that uses the bundle id of the framework completely ignoring the bundle id of the iOS app using the framework

What we are currently doing?

I am initializing firebase programmatically by creating a "FirebaseOptions" variable using our firebase app credentials(googleAppID ,gcmSenderID) which are made available through "GoogleService-InfoGameball.plist". This firebase app has an iOS module with bundle_Id = "Abodeif.gameballSDK" which is gameball's iOS SDK bundle id. I then attempt to configure a FirebaseApp via the configure with name method call shown below FirebaseApp.configure(name: "gameballSDK_FirebaseApp", options: manualOptions)

What should happen?

A FirebaseApp instance should be created which will communicate with firebase servers. A new user session should be registered and this should visible via our apps firebase portal.

What actually happens?

Firebase SDK prints a warning stating that the bundle id used to initialize firebase is different than the current app's bundle id. Nevertheless, A firebase object is created but this is not reflected on firebase's dashboard as a new user session. I have inspected the source of the warning in firebase's iOS SDK and I have found that this is only a print statement and does not prevent the instantiation of a FirebaseApp instance variable.

1

1 Answers

0
votes

I came in contact with the engineering team at firebase and their response was that such a setup is not possible in iOS but possible using android.

The only alternative solution I have found so far was building a microservice using node which communicates with APNS (Apple Push Notification Servers).

The node module below makes it very trivial to implement such a microservice when scalability is not an issue. https://github.com/node-apn/node-apn