Вы можете попробовать
let dic = snapshot.value as! [String:[String:Any]]
let tokens = Array(dic.values).map { $0["fcmToken"] as! String }
let exists = tokens.contains(fcmToken)
Ваша проблема как $0["fcmToken"]
относится к типу Any?
, который нельзя сравнить с типом String?
(fcmToken
)
let dic = snapshot.value as! [String:[String:Any]]
Array(dic.values).forEach {
print($0["fcmToken"])
if let token = $0["fcmToken"] as? String , token != fcmToken {
print("token is not match detected")
}
// or
if ($0["fcmToken"] as? String) != fcmToken {
print("token is not match detected")
}
}
Вы можете безопасно использовать
guard let dic = snapshot.value as? [String: [String:Any]] else {
return
}
, но он не будет работать, если значение равно nil