[英]Send Notification specific logged User Using Firebase Cloud Messeging
在我的 android 應用程序上有很多用戶,但我想只發送適合的特定用戶的通知。 我不想發送所有用戶。 如果用戶已經登錄應用程序通知將在屏幕上彈出。
需要幫助,建議將不勝感激。
當設備 firebase 初始化時,它會返回一個設備令牌,我們通常將它發送到后端,因此它將與用戶 id 一起存儲在后端數據庫中,然后可以用於您的目的。
當用戶首次運行您的應用程序時,Firebase 會為該用戶及其設備生成一個令牌。 每次用戶刪除應用程序並重新安裝時,它都會重新生成此令牌。 當然,這也包括新設備,因為這就像有史以來的第一次安裝一樣。
我所做的是我使用了 Firebase 實時數據庫,我在其中為我擁有的每個用戶存儲了這個令牌。 然后,當我需要向該用戶發送通知時,我只需獲取該令牌並將其發送到我的應用程序中。 這是關於我如何做到這一點的一個老例子:
OkHttpClient client = new OkHttpClient();
Logger.getLogger(OkHttpClient.class.getName()).setLevel(Level.FINE);
JSONObject json = new JSONObject();
JSONObject notifJson = new JSONObject();
JSONObject dataJson = new JSONObject();
notifJson.put("text", body);
notifJson.put("title", title);
dataJson.put("customId", "02");
json.put("notification", notifJson);
json.put("data", dataJson);
json.put("to", firebase_token);
RequestBody body = RequestBody.create(MediaType.parse("application/json"), json.toString());
.header("Authorization", "key="+server_key)
.url("https://fcm.googleapis.com/fcm/send")
.post(body)
.build();
Response response = client.newCall(request).execute();
if (response.isSuccessful()) { //do something if notification is sent successfully }
您可以使用您的代碼向特定用戶發送通知來執行此操作。 當然,如果您想從您的代碼發送通知。 如果您想使用服務器或其他東西,您可以在此處查看文檔: https://firebase.google.com/docs/cloud-messaging/android/send-multiple
我在這個例子中使用的:
notifJson
- 通知部分dataJson
- 通知的數據部分body
- 我的通知正文title
- 我的通知的標題firebase_token
- 我正在向其發送通知的用戶的令牌,這是之前使用 Firebase 實時數據庫檢索到的server_key
- 來自 Firebase 配置的服務器密鑰在下面的IF statement
中,如果響應成功,我會將一些數據添加到我的實時數據庫中,但您可以做任何您想做的事情。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.