Firebase: Making multi-lang notifications - android

My case is the following: a user do something, then my Firebase script in Functions should notify his friends, but it don't know what lang set up for the app of certain friend.
If the Android app in foreground, there is no problem, I simply should send some json in notification payload and then parse it in onMessageReceived using current lang values. But I can't do the same, when the app in background or closed. So it sounds like I have to build multi-lang notifications at the backend, am I right? Any suggestions appreciated.

Searching for hours, I had found pretty good answer. You don't have to store lang constants in backend scripts, because you can manage notification's data even if your app in background or even closed. You just should clear notification field of notification payload. See full answer.

Related

What is the workflow to get live data updates from NodeJS/MongoDB API?

I need to fetch live data in Android App from a NodeJS/MongoDB API. For exemple, I have a list of tasks on the Android screen (fetched from the API). Then one of this documents (tasks) have changed in the MongoDB, the Android screen needs to update the data on the screen once this data have been changed on the server.
Can anyone help with some workflow? I am not looking for code. Ideias (Arquitecture/Libs) only.
Thanks in advance!
You can do this in two way.
Use silent push notification.
When data change in server then server send push notification
to app.
App receive notification Then app get call API to update Data.
Your app sends a request(s) to server periodically (After some
interval of time)
Reference link for same: link1, link2

FCM differences between Android and iOS about data messages

I'm using Firebase Cloud Messaging to send data payload and display notification in my Android and iOS apps. I'm integrating this in my iOS app and I'm in front of a curious thing.
Short story:
My notification server only send data messages (I mean JSON messages containing "data" field and with no "notification" field). In my Android app this is not a problem because I receive the message even if my app is in background in my Service implementation and I manually build a notification that I display. But in iOS case, how can I receive message when my app is in background to do the same? I mean if I add a "notification" field to my request I see the notification pop on my screen (when app is in background) and I can get data (located in the "data" field) after a click when my app is in foreground.
But can I have data when my app is in the background to manually display a notification?
Important precision:
The content of the displayed notification should be built app side and not server side because the server doesn't have enough informations, this is why I can't send the "notification" field in my payload message.
Thanks
EDIT: I solve (in part) this problem using this link. Shortly, I enabled both Background fetch and Remote notifications under Background Modes (and added content_available : true in the payload). Then I can process data received in didReceiveRemoteNotification: But now it still one thing: how make it works when my app is killed?
EDIT 2: I found something that could be the thing : that. Modifying the payload of a remote notification implies to handle incoming notifications before there are displayed. I'll try.
EDIT 3: Firebase doesn't support the mutable-content key required to make my solution found at EDIT 2 working. Discussion about that is here. So... Any idea?
I do not think it is possible to trigger "stock" notification on iOS from code the same way you do on Android using NotificationBuilder.
The only option available is to use hybrid messages with both notification and data payloads.
Check their doc for more information on hybrid messages.
On 16/02/14, Firebase added compliance with the "mutable-content" key. So that solved my problem and, I think, many people's problems.
Personal thinking:
I consider that 6 months late for this feature is really too much. I hope that future releases'll be up to date with iOS (as well as Android) releases.

What is the best way to change website contents without the user giving any trigger

For example, whenever someone "likes" your post in Facebook, you get a notification. You don't have to refresh your page to get the notification. Or whenever someone sends you a message in Whatsapp you immediately get it.
How do they implement that? Does it use Ajax to listen for database changes every second or so?
I want to build an Android application which should do something whenever the value of a remote database changes. Should I use a service to check for the database value every second and compare it to the previous value? Is this the best way to do it?
You could either setup a gcm service or use the native android service to hit your database at a fixed interval of time . GCM would be more efficient and would be recommended , if your app is an extensive real time sort of an app like a messenger or something
You should look into Google Cloud Messaging. But you will need a server to implement it.
https://developers.google.com/cloud-messaging/

What should the payload be for Android push notifications (GCM)

From my understanding of the GCM documentation you basically send whatever data you want as the data field. Then the client receives it and is responsible for handling it and displaying it. Is this wrong? What if like on iOS I just wanted to send a bit of text and have it display? Is there a standard key to use or anything? I'm pretty certain I've been through all the documentation I can find and don't see anything like this.
No, you're right. There are no standard keys like in iOS, it's all up to you seeing as you're the one responsible for the notification management.
Basically, in your BroadcastReceiver you should write the code for displaying a Notification in the status bar. Just parse your JSONObject from the recieved message and show whichever piece of text you may have set.

Push Notification from server

I have developed an app in which i am collecting data from server through parsing. So , i want to add push notification in my app whenever the service adds new data. I have searched the web bt cldn't fnd smthn useful.
The best way is to either get a webserver with cronjob this will send information directly to your mobile ... or, to make an backgroundservice in your application.
It's not a simple thing to do, in the upcomming few days I'll be posting a tutorial on http://p-xr.com wich explains it in detail.

Categories

Resources