android fcm notification based on location - android

I'm currently working on an android app where I want users to receive notifications based on their distance from certain locations.
I'm using Firebase Cloud Messaging for notifications, but I cannot figure out how to do this.
I figure there are two possibilities:
Save user location on database and calculate before sending notification, but this requires lots of work and requires the user to make an account in the app to save data to the database. And how would you know whom to send to? Since a topic sends to all.
Send notification to all and filter out notificaion on phone before showing it. I found the onMessageReceived() function, but I cannot figure out how to stop the notification from showing here.
Any suggestions?

I am not sure you will achieve what you want with FCM, but I would advise to go with Google Play Services GeoFencing API that might be what you are looking for, and works very well!
Once entered in one of the regions you are monitoring (based on the radius-distance to each location) your app will be woken up, and you will be able to do whatever you want, like firing a notification, reach your backend, etc…

Related

Disable firebase cloud messaging from going to tray via Cloud Messaging

I've researched this topic for a little while, but I can't seem to get it. Apparently Google hasn't made an UI for this is what I understand. So here's the question.
I like to send cloud messages to my app users (100k+) occasionally. The users have an option to turn these notifications off which works fine if the app is in foreground.
But for background, Firebase does not give me any way of handling this. The message will always go to the tray even a user has disabled it inside the app. Understandably the notification never makes it to the app.
I've read responses from people that we should send such messages directly from our own servers. Yes, I've got my own servers and I do send a lot of messages to my users directly from the server. I maintain a database of all fcm codes.
But I'm wondering if there's a way of achieving this through the firebase console. It's nice to have all messages in once place e.g. ios and android. Google will also show us statistics which are also important in analysing which notifications are working better.
I've seen a possible answer here, How can I disable firebase notification on android client app, but it looks very unconventional.
Any help would be appreciated.
to disable notifications just must add
FirebaseMessaging.getInstance (). UnsubscribeFromTopic ("Topic_Name");
Note: these must be previously subscribed to the Topic
to enable notifications again use this
FirebaseMessaging.getInstance (). SubscribeToTopic ("Topic_Name");

Can I set the "Difference push receive setting in firebase?"

I am now trying to make a mobile app push notification service on Firebase. But the function description is not quite specific as I expected.
I want to know these functions are available on Firebase. If not, It would be pleasure If you tell me other tool.
User can select the push message types they want to receive.(Ex. Receive sale information push, Do not receive game event push)
Instantly send auto push messages when user triggered certain condition.(Ex. Send appreciate push message when user closed their first app-open)
Thank you
Can not tell in much description here:
1. User can select the push message types they want to receive.(Ex.
Receive sale information push, Do not receive game event push)
You can use FCM's channeling feature,
You can set different channels.
Show the list of channels to user.
User can subscribe to the required channel.
User will receive the specific channel notification only.
Please refer : Notification Channel
2. Instantly send auto push messages when user triggered certain condition.(Ex. Send appreciate push message when user closed their first app-open)
You have manage this thing in your front end and backend logic.
Like on app close send request to the backend (can use onDestroy method )server and then the backend server will send notification.
Hope this will help you.
For Feature 1:
You can achieve this without even doing anything. Just send all notifications to everyone. However, use different Notification Channels. Users, can then choose to turn on/off certain notification channels using the Android system features (in relatively newer versions of android).
Another way could be to send these notifications to different FCM Topics. Give the users a settings pages, where there can select what kinds of notifications they would like to receive. In response to their selections, subscribe or unsubscribe them to the respective FCM Topic.
For Feature 2:
There could be several hundred ways of doing this. Can provide better advice if you could provide more information about your requirement.
If you talk about your example requirement
(Send appreciate push message when user closed their first app-open)
You can do it without any server, or push messaging scheme. Just keep track of the first_open event inside the app using Shared Preferences. Once you detect a first_open event, just compose a notification inside of the app locally, and show it whenever you like.

Push notification in react native for both ios and android

There are 2 situation where i need to implement best and efficient way to push the notification to the end users:
specific users which are in 10mi radius from a business offering discount will get notified about expiring coupon or any other new offer.
All of the Users get notified for next upgrade feature available to install.
Please let me know if I should save all of the device token downloading my app in my DB along with their lat, lng, So that I can search them for specific distance before sending notification. Or shall I just save registered users only for notification?
I am writing backend api for this app and need best solution for this.
Thanks
Push notifications need device token, so if you need to send the Notification to every user in the app, even if the user is not registered, you will need the device token in order to make the push notification work.
Also keep in mind that device token could change so you need to save it every time you can, for example, every time the app is launched.
For the notifications in the geofence I think you can use a local notification.

calculating the number of user receving a push notification

In the startup I'm currently working, we have developed a push server that enables the user to receive push notification when new content uploaded in our database.
Our system currently stores how many push are send and through Google analytics we can see how many people interact with the push notification, yet we would like to know how many people in total receive the push notification.
How can we count how many devices recevie the push? Which method could we use? As an example users unistall the app but we still have them stored on our database, or users may opt-out from the push through system settings (both ios and android)
Thanks for the help!
You can achieve it using same analytics by which you are able to identify how many people interacted with push using analytics. you will have to call your analytics function for pushRecieved in broadCastReciever for your GCM implementation.

working mechanism of mail android app

I want to know the complete working mechanism of the mail apps for android.
Actually I build an android app for big data product.It has a feature which will shows the notifications (list view) .
Now I want If new notifications come in the DB It should ring a bell and in notification bar of the android phone it should show, As in case of Mail apps, as soon as we got new mail a notification comes in notification bar.
NOTE: android server which needs to be queried may not contain internet.This App works on intranet also.within a company network.(without the internet)
So I want to know the mechanism to implement this feature.
1) Whether i should run a background service which will send query to server on regular time interval.
2) Or any other services like push notification.
I just need a clear idea about working of these type of system.So that I can implement this in effective manner.
Thanks
Obviously the best solutions would be to use PushNotifications. This is how GMail does it, and this is how every email app, or messaging app has to do it.
Polling the server will drain the battery, and will also make extra (unnecessary) data traffic, which is something you don't want your app to do .
You should get started here : Google Cloud Messaging. In my opinion it is very easy to setup, and I recommend using GCM, instead of all the other alternatives like Parse and so on.

Categories

Resources