13

Tôi đang suy nghĩ về việc giữ tất cả các id đăng ký (push token) trong DB và gửi thông báo cho người dùng từ iPhone. Tôi đã thử một cái gì đó như thế này nhưng không nhận được bất kỳ thông báo.Có thể gửi PushNotifications, sử dụng Firebase Cloud Messaging (FCM) tới UDID đặc biệt, trực tiếp từ thiết bị không?

func sendPNMessage() { 
    FIRMessaging.messaging().sendMessage(
     ["body": "hey"], 
     to: TOKEN_ID, 
     withMessageID: "1", 
     timeToLive: 108) 
} 

Điều tôi đang làm sai hoặc có thể là không thể?

Trả lời

18

Hiện tại, không thể gửi tin nhắn từ chính ứng dụng. Bạn có thể gửi tin nhắn từ Bảng điều khiển Web Firebase hoặc từ máy chủ tùy chỉnh bằng API phía máy chủ.

Điều bạn có thể muốn làm là liên hệ với máy chủ (như qua cuộc gọi http) và máy chủ đó sẽ gửi tin nhắn cho người dùng. Cách này đảm bảo rằng API-KEY của máy chủ được bảo vệ.

PS: sendMessage(..) api được gọi là tính năng ngược dòng và có thể được sử dụng để gửi tin nhắn từ ứng dụng của bạn tới máy chủ, nếu máy chủ của bạn có kết nối XMPP với máy chủ FCM.

+1

Có vẻ như tôi cần một máy chủ để gửi thông báo đẩy.Cảm ơn bạn đã phản hồi! – Svitlana

+0

@Svitlana: Nếu câu trả lời này hữu ích, hãy nhấp vào nút upvote ở bên trái của nó. Nếu nó trả lời câu hỏi của bạn, hãy nhấp vào dấu kiểm để chấp nhận câu hỏi đó. Bằng cách đó, những người khác biết rằng bạn đã (đủ) đã giúp đỡ. –

+0

Cảm ơn bạn đã trả lời sẽ làm việc với máy chủ! – Svitlana

7

Có, bạn có thể gửi thông báo đẩy qua Firebase.Vui lòng đảm bảo KHÔNG bao gồm khóa máy chủ vào ứng dụng khách của bạn. Có nhiều cách "để những người không tuyệt vời" tìm thấy nó và làm công cụ ... Cách thích hợp để đạt được điều đó là để khách hàng của bạn hướng dẫn máy chủ ứng dụng của bạn gửi thông báo.

Bạn phải gửi HTTP-Post tới Google-API-Endpoint.

Bạn cần các tiêu đề sau:

Content-Type: application/json 
Authorization: key={your_server_key} 
You can obtain your server key within in the Firebase-Project. 

HTTP-Post-Content: Sample 

{ 
    "notification": { 
     "title": "Notification Title", 
     "text": "The Text of the notification." 
    }, 
    "project_id": "<your firebase-project-id", 
    "to":"the specific client-device-id" 
} 
+0

Bạn nói có, những người khác nói không .... bao gồm những người làm việc cho firebase ... vậy câu trả lời đúng là gì? –

+1

Tôi đã thực hiện điều này và nó hoạt động tốt cho tôi :) –

+0

Chúng về mặt kỹ thuật đều chính xác. Câu trả lời này là một trong những công trình, nhưng không nên được thực hiện bởi vì bạn đang lộ chìa khóa máy chủ của bạn với thế giới – Mbrevda

1

Google Cloud Chức năng làm cho nó bây giờ có thể thông báo gửi push từ thiết bị đến thiết bị mà không cần một máy chủ ứng dụng.

From the Google Cloud Functions documentation:

phát triển có thể sử dụng đám mây Chức năng để lôi cuốn người dùng và lên đến ngày với các thông tin có liên quan về một ứng dụng. Hãy xem xét, ví dụ: ứng dụng cho phép người dùng theo dõi hoạt động của nhau trong ứng dụng. Trong ứng dụng như vậy, chức năng được Cơ sở dữ liệu thời gian thực kích hoạt để lưu trữ người theo dõi mới có thể tạo thông báo Firebase Cloud Messaging (FCM) để người dùng thích hợp biết rằng họ đã giành được người theo dõi mới.

Ví dụ:

  1. Chức năng gây nên trên ghi vào con đường cơ sở dữ liệu thời gian thực, nơi tín đồ được lưu trữ.

  2. Chức năng soạn tin nhắn để gửi qua FCM.

  3. FCM gửi thông báo thông báo tới thiết bị của người dùng.

Here is a demo project cho việc gửi thông báo đẩy thiết bị đến thiết bị với căn cứ hỏa lực và Google Cloud Chức năng.

Các vấn đề liên quan