[英]Android: Notification not delivered to user using Firebase Cloud Message
[英]generate notification with android client app using firebase cloud message
我想用一個Android應用程序推送一些通知。 所以我做了一些研究,但我很少迷失。
可能是我錯了,但我認為我唯一的可能性是將FCM與HTTP Request一起使用,例如:
POST https://fcm.googleapis.com/v1/projects/myproject-b5ae1/messages:send HTTP/1.1
Content-Type: application/json
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
{
"message":{
"topic" : "foo-bar",
"notification" : {
"body" : "This is a Firebase Cloud Messaging Topic Message!",
"title" : "FCM Message",
}
}
}
但是我看到每個人都使用自己的數據庫,但我不知道為什么他們需要使用它。 我不想使用自己的數據庫,因此,如果您有更好的解決方案,請幫助我。
感謝您的所有回復
(對不起我的英語不好)
使用Firebase Cloud Messaging將消息發送到設備時,需要指定FCM服務器密鑰。 它是示例中的Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
標頭中的值。
但是這里的一個關鍵問題是擁有FCM服務器密鑰的任何人都可以無限制地向您的應用程序的所有用戶發送消息。 如果你嵌入該鍵為您的應用程序,這只是一個時間的問題之前,有人發現是並用它來不必要的消息發送到您的用戶。 因此,顧名思義,FCM服務器密鑰僅應在受信任的環境(例如您控制的服務器/設備或雲功能)中使用。
因此,雖然從技術上講可以將消息從一台Android設備發送到另一台Android設備,但是這樣做會使您的應用程序用戶面臨不必要的風險。
一些指向以前的好答案和文章的鏈接:
不久前,我也遇到了同樣的問題...為了應付通過FCM在沒有數據庫的情況下發送通知,我使用了Firebase Cloud Functions和Firebase Admin SDK。 當用戶收到來自群組或其他人的聊天時,我需要發送通知。 我使用了Firebase Cloud Functions中的4個觸發器之一。 我使用的是onUpdate()
觸發器。 還有onWrite()
, onDelete()
和onCreate
。 所有這些觸發器都可以在發生此類更改時發送通知。.我使用了Admin SDK,然后獲取了令牌(如果是單個用戶,我之前已將其上傳到數據庫)或主題(對於群聊,我以群聊命名,這樣很容易獲得)。 由此,我還命名了類型,以便它知道是發送給單個用戶還是組。 這使我可以有一個偵聽器來發送通知,而無需自己的數據庫。 全部通過火力。 還有一個要補充的事實是,這是在Node.JS中完成的,但是用Firebase的知識很容易掌握這個概念。
一些有用的鏈接:
管理員數據庫入門,接下來的頁面用於讀寫(請記住使用Node.JS)
希望這可以幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.