【问题标题】:Reading an array in Firebase在 Firebase 中读取数组
【发布时间】:2018-07-21 21:16:21
【问题描述】:

我需要一些帮助来读取我的 Firebase 结构中的“用户”数组,如下所示。

我使用下面的函数从通道表中获取数据。

func observeChannels(channelId: String, onSuccess: @escaping (ChannelModel) -> Void) {
    DB_REF_CHANNELS.child(channelId).observeSingleEvent(of: .value) { (snapshot) in
        if let dict = snapshot.value as? [String: Any] {
            let channel = ChannelModel.transformChannel(dict: dict, key: snapshot.key)
            onSuccess(channel)
        }
    }
}

然后将其传递给 ChannelModel 类,以便我可以获取每个单独的数据。

class ChannelModel {
var channelId: String?
var channelName: String?
var ownerId: String?
var users: Dictionary<String, Any>? // Array of users }

extension ChannelModel {
static func transformChannel(dict: [String: Any], key: String) -> ChannelModel {
    let channel = ChannelModel()
    channel.channelId = key
    channel.channelName = dict["channelName"] as? String
    channel.ownerId = dict["ownerId"] as? String
    channel.users = dict["users"] as? Dictionary<String, Any>
    return channel
}}

然后调用 observeChannels 函数,它返回所有通道的对象。

observeChannels(channelId: channelId, onSuccess: { (channel) in
            self.channels.insert(channel, at: 0)
            self.tableView.reloadData()

            let user = channel.users!
            print(user)
        })

当我运行上面的函数来获取用户时,我的输出如下:

["pZaEJ5aAAkR7WzgIJ4Wqf10jXot1": 1, "asdasldljAlsjkasldj": 1]

我想知道如何获得键值 - 即:

["pZaEJ5aAAkR7WzgIJ4Wqf10jXot1", "asdasldljAlsjkasldj"]

提前致谢!

【问题讨论】:

    标签: arrays swift firebase firebase-realtime-database


    【解决方案1】:

    试试这个:

    let usersDictionary = channel.users!
    usersArray = Array(usersDictionary.keys)
    print(usersArray)
    

    代替:

    let user = channel.users!
    print(user)
    

    【讨论】:

    • 我尝试了第一个选项,它输出:Keys(_variantBuffer: Swift._VariantDictionaryBuffer&lt;Swift.String, Any&gt;.native(Swift._NativeDictionaryBuffer&lt;Swift.String, Any&gt;(_storage: { asdasldljAlsjkasldj = 1; pZaEJ5aAAkR7WzgIJ4Wqf10jXot1 = 1; }))) 而第二个只是返回 nil
    • 尝试编辑代码,即 usersArray = Array(usersDictionary.keys)
    猜你喜欢
    • 2018-11-26
    • 1970-01-01
    • 1970-01-01
    • 2021-09-05
    • 2018-03-26
    • 1970-01-01
    • 2018-02-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多