使用Swift 3在Firebase数据库中检索Int

使用Swift 3在Firebase数据库中检索Int,swift,firebase,firebase-realtime-database,Swift,Firebase,Firebase Realtime Database,我有以下代码: userRef.observeSingleEvent(of: .value, with: { (snapshot) -> Void in print(snapshot) if let dict = snapshot.value as? [Int : Bool] { print(dict) } }) Snap (availability) { 1 = 1; 2 = 1

我有以下代码:

    userRef.observeSingleEvent(of: .value, with: { (snapshot) -> Void in

        print(snapshot)

        if let dict = snapshot.value as? [Int : Bool] {
            print(dict)
        }
    })
Snap (availability) {
    1 = 1;
    2 = 1;
    3 = 1;
    4 = 1;
    5 = 1;
    6 = 0;
    7 = 0;
}
打印此快照的:

    userRef.observeSingleEvent(of: .value, with: { (snapshot) -> Void in

        print(snapshot)

        if let dict = snapshot.value as? [Int : Bool] {
            print(dict)
        }
    })
Snap (availability) {
    1 = 1;
    2 = 1;
    3 = 1;
    4 = 1;
    5 = 1;
    6 = 0;
    7 = 0;
}
我的问题是,由于
Int
值1,2,…,6,7,我的
dict
未初始化;Firebase可能不会将其命名为
Int
。我还尝试用
dict
作为
[String:Bool]
检索这些值。不太管用。
[NSNumber:Bool]


我的问题:考虑到这些值的子名称是int,我如何检索这些值?

问题是,当您按顺序使用int时,Firebase将它们视为数组。 您应该避免使用类似于键的int,因为:

如果所有键都是整数,并且对象中0和最大键之间的键有一半以上具有非空值,则Firebase将将其渲染为数组

给你!
还有一些来自Firebase博客。

可能是NSNumber的实例。顺便说一句:您的示例和备选示例都包含
[String:Bool]
。哦,对不起,谢谢你的朋友!顺便说一句,
NSNumber
不起作用!为什么不干脆[String:Int]@Pieter Laebens,因为它不起作用!;)谢谢,伙计,我会避免的但是它可能是值吗?你是什么意思?如果你的意思是如果可以检索int,如果它们是值,那么是的,总是当键是字符串时。