首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将数据数组作为数据库子项的关键字

如何将数据数组作为数据库子项的关键字
EN

Stack Overflow用户
提问于 2019-05-27 18:19:06
回答 1查看 36关注 0票数 -1

以前,我想在Firebase中查询数组数据,但我发现firebase中的数组数据不支持该查询。因此,我想让我的数组作为key,值为true。提前谢谢你。

例如,当我有一个array = ["a", "b", "c"]

我想改成

代码语言:javascript
复制
subject
-------"a":"true"
-------"b":"true"
-------"c":"true"
EN

回答 1

Stack Overflow用户

发布于 2019-05-28 01:56:01

我认为我们要问的是如何获取问题中所示的字符串数组,并将它们写入Firebase,其中每个字符串元素都是一个键,并且它有一个子值true。

我们可以利用Swift字典的uniqueKeysWithValues函数来创建键:值对,并将它们存储在字典中,然后可以将它们写入Firebase。

代码语言:javascript
复制
let array = ["a", "b", "c"]
let dict = Dictionary(uniqueKeysWithValues: array.map { ($0, true) })
fbRef.child("subject").setValue(dict)

结果将会是

代码语言:javascript
复制
subject
   a: true
   b: true
   c: true

另一种选择是创建一个扩展来向数组添加功能(序列)。

代码语言:javascript
复制
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
    }
}

和用法

代码语言:javascript
复制
let anArray = ["x", "y", "z"]
let dict = anArray.toDictionary()
fbRef.child("subject").setValue(dict)

这可以使用更多的错误检查,并假设元素始终是字符串。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56324106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档