对成员下标的模糊引用

时间:2016-05-22 21:41:33

标签: swift firebase firebase-realtime-database

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文档。

1 个答案:

答案 0 :(得分:-1)

FDataSnapshot的value是AnyObject。这意味着它没有已知的类型。因此,你不能下标它(如在value["Users_Device_Token"]中)。

您似乎认为您的value是字典。你当然可以下载一本字典。但是在这种情况下你必须告诉Swift这个一个字典 - 也就是说,在你尝试下标它之前,你必须作为字典转换成。