使用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,如果它们是值,那么是的,总是当键是字符串时。