私は何が問題を助けてくれるのかわかりません。 Firebaseデータベースから特定のメッセージを受け取ったときに価値が得られますが、私のアプリは1行でクラッシュしました。私のコードで何が間違っているか教えてください。以下は私の機能です。また、エラーのスクリーンショットも提供しています。iosのfirebaseデータベースから最新のメッセージを入手する方法
func getLatestMessageFromFirebase(token:String,completionmessage: @escaping (_ message:String) -> Swift.Void)
{
print("getModelFromFirebase")
var message:String=""
ref.child("chatmessage/devicetoken/").child(token).queryLimited(toLast: 1).observeSingleEvent(of: .value, with: { (snapshot) in
// Get user value
let value = snapshot.value as? NSDictionary
if value?["message"] as? String != ""
{
DispatchQueue.main.async
{
message = (value?["message"] as? String)! //My app stop on this line
completionmessage(message)
}
}
})
{ (error) in
print(error.localizedDescription)
}
}
func callAPI()
{
let response = (jsonResult.object(forKey: "chatListArr") as? NSArray)!
if response.count > 0
{
for i in 0..<response.count
{
let dict = response[i] as! NSDictionary
let chatlist = ChatList(dict: dict)
self.arr_list.append(chatlist)
}
for i in 0..<self.arr_list.count
{
let chatlist = self.arr_list[i]
self.getLatestMessageFromFirebase(token: chatlist.token, completionmessage: { (message) in
self.arr_list[i].msg = message
})
}
self.table_view.reloadData()
}
}
私を助けてください。 ありがとうございました。
コードのスクリーンショットを追加する代わりに、実際のコードを質問に追加してください。エラーメッセージをキャプチャするには、赤いインジケータと「Issue Navigatorで表示」を右クリックします。 –