Firebase Cloud Messaging sending messages one by one - firebase-cloud-messaging

I am developing an app where I want to send notifications to multiple users from my backend server. These notifications will contain 4 different contents, three of them will go to 3 different users, but the forth one will go to more than 1000 users, the frequency of theses messages will be 3 to 7 times a week. Is it ok to send this amount of messages one by one using the Cloud Messaging api? Or should I group the messages before sending?
I thought about creating a topic in the Cloud Messaging, and subscribe the users to it and then send a message, but I don't if it is correct to keep subscribing/unsubscribing users just to send one message.
NOTE: I've never used any push notifications service before.

The Firebase Cloud Messaging infrastructure delivers billions of messages per day. The volume you're describing sounds well within reason for it.
Without knowing more about the use-case it's hard to say whether using a topic would be a better approach, so I recommend reading the documentation on topic messages to get a better understanding for it.

Related

In Firebase Cloud Messaging, Messaging report, count of received messages is more then sent. Why it is so?

In Firebase Cloud Messaging, Messaging report, count of received messages is more then sent. Why it is so ?
I have checked data in Biq Query and it differs with diagram. In Big Query data count of received messages is less then sent.
firebaser here
That data is unusual since normally send count should be greater than received. It’ll be challenging to pinpoint or even narrow down what could be the problem on a public forum without going into project-specific details. The issue can be in the FCM backend itself or just in the reporting metrics. I would recommend reaching out to Firebase support as they can offer personalized help.

Inconsistent webhook delivery of Twitter Account Activity API

I have successfully set up a DM bot with the Account Activity API. Everything works very well, except that sometimes the message sent to the bot (through the Twitter's web interface or mobile application) doesn’t fire a webhook to my server. The messages could be quick replies responses or plain text.
The reason is obviously not a downtime of my server since I tried to make a conversation between 2 webhook registered users (so my server receive the webhooks for both users) and for the same message sent, I have successfully received the webhook of the sender (the user) but not for the recipient (the bot).
As the bot isn’t in production yet, the reason is not an overload of messages. There is currently only 2 users that make conversations. From my experience, around 10% of messages are "lost".
I'm using the free (sandbox) Account Activity API tier, but as I understand the only differences between the free and paid versions are a higher number of subscriptions (I'm fine with 15) and the “Retries” feature. Regarding this feature, it is specified that “The Account Activity API provides a retry feature when the client’s web app does not return a ‘success’ 200 response for an account activity webhook event.”
It clearly states that the event failure concerns the client’s side, not the Twitter side. Considering this issue (my server doesn't receive the webhook at all), there is no guarantee that every event will be delivered even if in a paid plan.
This is a big inconvenience for bots since a button can only be clicked once, so the user must retry the conversation from the beginning (besides the fact that the bot "doesn't work"...)
So my questions are :
Is anyone here experience this issue ?
Is this a “bug or a feature” of the free Account Activity API ? I mean, at random the free tier doesn't fire the webhook on purpose (even if it's not specified in the docs) ?
Is there a way to see or measure the webhook failures Twitter side, via the dashboard for instance ?
A guess is that the events could be more accurate if the account is verified (with a blue badge) or hit a followers number threshold ? The treatment could be different due to the potential surge of events, so they are monitored with more ressources, thus more reliable ?
I already create a topic in the official Twitter forum and there is at least one other person in the same case, but no official answer from Twitter so far.
Thanks a lot !
BR,
Simon
I've got an official answer from Twitter :
Unfortunately it is not possible to achieve 100% delivery rate when there is only 1 delivery attempt for an event, which is why we have retries (and even then, retries are not a guarantee either). Things can go wrong; maybe internal issues in Twitter Data Centers, routing issues in the internet, hosting issues at your webhook, etc.
So from the time being, it seems that there's not way to have a 100% success delivery when you build a bot on Twitter.
Full answer can be read here.

Is Firebase Cloud Messaging suitable for messaging apps?

We're writing an app like LINE, and need notification service for each single message in a chat group when app is in background.
We try to use Firebase Cloud Messaging for this feature, but I can't see a reasonable implementation.
Topic subscribing is too slow for "create a topic for each chat group" since it takes hours to create one. Device group messaging is designed for devices owned by a single user. Using sending to a single device feature for each receiver and each message does not seem to be practical since the server loading is too heavy.
Is there a good way to use FCM making such app, or do I need to find another service? Thanks.

Quickblox chat data replication

We are going to build a mobile app that will simplify a communications between our customers and our workers. Quickblox seems to be a good chose for us but we have a question:
We would like to save all text messages that are sent between customers and workers in our database. What is the best way to implement it? Is it possible to automatically add a server bot to every conversation? Is it possible to poll a Quickblox and request all conversations/messages of all users for some date?
We have a Kafka http://kafka.apache.org integration with our Chat - each message also goes to a Kafka queue, so you can connect to Kafka and consume all messages on your side and save them to your DB for example.
This feature is available starting from Enterprise plan http://quickblox.com/plans/

How to send Message to all registered users with android gcm?

I am using android gcm to make push notifications for my users. Everything is working so fine. To send a notification I need the users registration id to identify him. It works. Now my problem is that I have some hundreds of users and I would like to inform them ALL about certain updates.
Is there a way to send a notification to all users?
Do I really have to push them all by their registration ids?
On the server side I am using PHP and CURL as it is shown in many examples around here...
There is no way to broadcast to all users with a single post.
You need to send every ID in blocks of up to 1000 ID's. So if you have 2500 ID's, you need to split that up into 3 posts. 1-1000, 1001-2000, 2001-2500.
If you want to use the new GCM topics you could create a "all users" topic, and have the app subscribe to that topic when it starts up. Then a single topic post could go to all the users (I think the limit is a million but you probably should check that).