Swift 如何将数据数组作为数据库子项的键
以前,我想在Firebase中查询数组数据,但我发现Firebase中的数组数据不支持该查询。因此,我希望将数组设为键,值为true。先谢谢你 比如说,, 当我有Swift 如何将数据数组作为数据库子项的键,swift,firebase,Swift,Firebase,以前,我想在Firebase中查询数组数据,但我发现Firebase中的数组数据不支持该查询。因此,我希望将数组设为键,值为true。先谢谢你 比如说,, 当我有数组=[“a”、“b”、“c”] 我想把它改成 subject -------"a":"true" -------"b":"true" -------"c":"true" 我想我们要问的是如何获取问题中所示的字符串数组,并将它们写入Firebase,其中每个字符串元素都是一个键,它的子值为true 我们可以利用Swift字典的uniq
数组=[“a”、“b”、“c”]
我想把它改成
subject
-------"a":"true"
-------"b":"true"
-------"c":"true"
我想我们要问的是如何获取问题中所示的字符串数组,并将它们写入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
另一个选项是创建扩展以向数组(序列)添加功能
以及用法
let anArray = ["x", "y", "z"]
let dict = anArray.toDictionary()
fbRef.child("subject").setValue(dict)
这可能需要更多的错误检查,并假设元素始终是字符串。如果要在firebase中存储此类数据,更好的方法是创建一个子元素。此子级有2个子级,一个子级存储true/false,另一个子级存储array,这样您也可以节省空间。
let anArray = ["x", "y", "z"]
let dict = anArray.toDictionary()
fbRef.child("subject").setValue(dict)