首页 > 解决方案 > 使用 device_token 发送推送通知

问题描述

我想向每个用户发送推送通知。我想用 device_token 做到这一点。我将 device_tokens 存储在 Firebase Cloud Firestore 中。

func storeDeviceTokenFromUserInFirestore(device_token: Data) {

    
    let device_tokenToString = device_token.hexString
    print("device_tokenToString", device_tokenToString)
    
    DATABASE_FIRESTORE.collection("device_token_from_user").getDocuments { (querySnapshot, err) in
        if let err = err {
            print("Error getting documents: \(err)")
        } else {
            for document in querySnapshot!.documents {
                var value = document.data().values.description
                value = String(value.dropFirst())
                value = String(value.dropLast())
                if device_tokenToString == value {
                    return
                } else {
                    var ref: DocumentReference? = nil
                    ref = self.DATABASE_FIRESTORE.collection("device_token_from_user").addDocument(data: ["device_token" : device_tokenToString
                    ]) { err in
                        if let err = err {
                            print("Error adding document: \(err)")
                        } else {
                            print("Document added with ID: \(ref!.documentID)")
                     }
                  }
               }
            }
         } 
      } 
    }

使用 Python 脚本,我想向每个用户发送推送通知。

    for token in tokens:
    
        serverToken = 'myServerToken'
        deviceToken = token
    
        headers = {
                'Content-Type': 'application/json',
                'Authorization': 'key=' + serverToken,
            }
    
        body = {
                'notification': {'title': 'Sending push form python script',
                                    'body': 'New Message'
                                    },
                'to':
                    deviceToken,
                'priority': 'high',
                #   'data': dataPayLoad,
                }
        response = requests.post("https://fcm.googleapis.com/fcm/send",headers = headers, data=json.dumps(body))
        print(response.status_code)
    
        print(response.json())

执行此代码后,我没有收到推送通知。我做错了什么?

标签: pythonswiftfirebasegoogle-cloud-firestore

解决方案


推荐阅读