var dataRef = FIRDatabase.database().reference()
override func viewDidLoad() {
super.viewDidLoad()
let users = dataRef.child("users")
users.queryOrderedByChild("Username").queryEqualToValue("notifactiontest").observeSingleEventOfType(.Value, withBlock: { snapshot in
print(snapshot)
if let token = snapshot.value["Users_Device_Token"] as? String{ <--- Error here.
// do some stuff once
}
})
我正在尝试获取与每个用户关联的FCM令牌。当我打印令牌时,我得到以下内容:
Snap (users) {
qIKBuX1IcIPdpMKml4Sh9MhIbPq1 = {
"Display_name" = notifactiontest;
Username = notifactiontest;
"Users_Device_Token" = "FCMTOKEN";
"Users_Id" = qIKBuX1IcIPdpMKml4Sh9MhIbPq1;
};
}
我尝试了什么:迭代每个孩子并试图模仿Firebase提供的iOS文档。
答案 0 :(得分:-1)
FDataSnapshot的value
是AnyObject。这意味着它没有已知的类型。因此,你不能下标它(如在value["Users_Device_Token"]
中)。
您似乎认为您的value
是字典。你当然可以下载一本字典。但是在这种情况下你必须告诉Swift这个是一个字典 - 也就是说,在你尝试下标它之前,你必须将作为字典转换成。