【问题标题】:Ambiguous reference to member subscript对成员下标的模糊引用
【发布时间】:2016-05-23 08:23:25
【问题描述】:
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 文档。

【问题讨论】:

    标签: swift firebase firebase-realtime-database


    【解决方案1】:

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

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

    【讨论】:

    • 当我尝试将其转换为字典但没有成功时,您能否传递一些示例代码
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-01
    • 2017-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多