以前,我想在Firebase中查询数组数据,但我发现firebase中的数组数据不支持该查询。因此,我想让我的数组作为key,值为true。提前谢谢你。
例如,当我有一个array = ["a", "b", "c"]
我想改成
subject
-------"a":"true"
-------"b":"true"
-------"c":"true"
发布于 2019-05-28 01:56:01
我认为我们要问的是如何获取问题中所示的字符串数组,并将它们写入Firebase,其中每个字符串元素都是一个键,并且它有一个子值true。
我们可以利用Swift字典的uniqueKeysWithValues函数来创建键:值对,并将它们存储在字典中,然后可以将它们写入Firebase。
let array = ["a", "b", "c"]
let dict = Dictionary(uniqueKeysWithValues: array.map { ($0, true) })
fbRef.child("subject").setValue(dict)
结果将会是
subject
a: true
b: true
c: true
另一种选择是创建一个扩展来向数组添加功能(序列)。
extension Sequence {
func toDictionary() -> [String: Bool] {
var dict = [String: Bool]()
for element in self {
if let s = element.self as? String {
dict[s] = true
}
}
return dict
}
}
和用法
let anArray = ["x", "y", "z"]
let dict = anArray.toDictionary()
fbRef.child("subject").setValue(dict)
这可以使用更多的错误检查,并假设元素始终是字符串。
https://stackoverflow.com/questions/56324106
复制相似问题