firebase / firebase-admin-go

Firebase Admin Go SDK
Apache License 2.0
1.12k stars 239 forks source link

Legacy API Deprecation for FCM #560

Closed euantorano closed 4 months ago

euantorano commented 1 year ago

We've received an email yesterday regarding deprecation of the legacy API for FCM. It links to an FAQ entry, which says to migrate usages of SendMulticast to SendEachForMulticast.

It doesn't look like this has been implemented yet in the released version of this module, or in this repository as far as I can see, yet the FAQ specifically mentions the Go version of the Firebase Admin SDK.

Is there a plan or roadmap for implementing this change? Obviously the email states the deprecation date is 20/06/2024, and an email has gone out already. I'd expect there will probably be several teams looking at making the required changes sooner rather than later as well so the changes can be fully tested before the deprecation date.

google-oss-bot commented 1 year ago

I found a few problems with this issue:

themartorana commented 1 year ago

Ditto batch sending via SendAll (that's what the email told me I needed to stop using in the next 12 months).

thatfiredev commented 11 months ago

Hey all, this has been addressed in v4.12.0 of the SDK: https://firebase.google.com/support/release-notes/admin/go#cloud-messaging

baptistejamin commented 5 months ago

Are there plans to a real multicast method? IMO, SendMulticast and SendEachForMulticast are not doing the same thing at all.

SendEachForMulticast does 1 request per registration_ids, where SendMulticast sends 1 request by grouping all messages into one HTTP Request.

It can lead to a radical server load over to the previous method, as it requires to establish one SSL Handshake for every request

lahirumaramba commented 4 months ago

These changes were needed in the SDK due to the deprecation of batch send APIs in the backend. We are currently investigating ways to further optimize the new sendEach and SendEachForMulticast methods including http/2 streaming. Stay tuned!

NickOttrando commented 2 months ago

These changes were needed in the SDK due to the deprecation of batch send APIs in the backend. We are currently investigating ways to further optimize the new sendEach and SendEachForMulticast methods including http/2 streaming. Stay tuned!

Any update on this? In general I'm wondering how people will continue to use Firebase for high scale applications when the batch send API is deprecated, given that the write calls are limited to just 80 every 100s. Not sure if I'm missing something, or if the rate limits will be increased for writes. Otherwise I don't see how developers can use firebase to send out thousands of pushes at a time, unless they use the topic model, which will not work for many use cases.

honorhs commented 2 months ago

Regardless of the development language, large services using the batch API through the Firebase SDK are all facing the same issue. This indicates that the support period for using the batch API in the Firebase SDK should be extended. https://github.com/firebase/firebase-admin-java/issues/941