gpt4 book ai didi

ios - 如何知道主题创建是否为 "submitted"到控制台(Firebase 云消息传递)

转载 作者:行者123 更新时间:2023-11-28 12:36:10 25 4
gpt4 key购买 nike

我将 google Firebase 与 xCode (swift) 结合使用。由于用户选择,我需要动态创建主题。

昨天我创建了一个主题:

FIRMessaging.messaging().subscribe(toTopic: "/topics/\(button.titleLabel?.text!)")

我在控制台中等待主题创建,我看到它最多需要 1 天,但什么也没有。

我还使用以下代码以编程方式(而非动态)创建了一个新主题:

FIRMessaging.messaging().subscribe(toTopic: "/topics/Notifiche")

它没有问题(我已经等待创建 4/5 小时)..

我的问题是:如果主题“正在创建”,现在有一个方法可以让我吗?因为我不知道我的代码是否有误,subscribe() 方法没有说任何东西

谢谢大家!

最佳答案

找到了。

将主题添加到控制台需要几个小时,但如前所述,在此之前它已经可以使用了。

您无法通过 Firebase 控制台了解它,但您可以执行 HTTP 请求以了解您是否订阅了该特定主题。

HTTP 请求

https://iid.googleapis.com/iid/info/<input token here>?details=true

如何获取token

FIRInstanceID.instanceID().token()

完整代码

(此代码可让您取消订阅所有主题)

    func unsubscribe_topics(){


let token = FIRInstanceID.instanceID().token();

let url = URL(string: "https://iid.googleapis.com/iid/info/\(token!)?details=true")

let request = NSMutableURLRequest(url: url! as URL)
request.httpMethod = "POST"


//define the multipart request type


request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.setValue("key=<insert server key here>", forHTTPHeaderField: "Authorization")


let session = URLSession.shared


let task = session.dataTask(with: request as URLRequest) {
(data, response, error) in

guard let _:NSData = data as NSData?, let _:URLResponse = response, error == nil else {
print("error")
return
}


let dataString = NSString(data: data!, encoding: String.Encoding.utf8.rawValue)

let dati_da_string = dataString?.data(using: String.Encoding.utf8.rawValue)!
let parsedData = try? JSONSerialization.jsonObject(with: dati_da_string!) as! NSDictionary
if let rel = parsedData?["rel"] {
let relaz = rel as! NSDictionary
let topics = relaz["topics"] as! NSDictionary
let topics_registrati = topics.allKeys as! [String]
for i in 0...(topics_registrati.count-1){
FIRMessaging.messaging().unsubscribe(fromTopic: "/topics/\(topics_registrati[i])")
print("Unsubscibed from: \(topics_registrati[i])")
}
}



}

task.resume()

}

关于ios - 如何知道主题创建是否为 "submitted"到控制台(Firebase 云消息传递),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40759591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com