Как сделать массив данных как ключ базы данных дочерним - PullRequest
0 голосов
/ 27 мая 2019

Раньше я хотел запрашивать данные моего массива в моей Firebase, но я обнаружил, что запрос не поддерживается в данных массива в firebase.Поэтому я хочу сделать мой массив ключом со значением true.Заранее спасибо.

Например, когда у меня есть array = ["a", "b", "c"]

, я хочу изменить его на

subject
-------"a":"true"
-------"b":"true"
-------"c":"true"

1 Ответ

0 голосов
/ 27 мая 2019

Я думаю, что спрашивают, как взять массив строк, как показано в вопросе, и записать их в Firebase, где каждый строковый элемент является ключом и имеет дочернее значение true.

Мы можемиспользовать функцию uniqueKeysWithValues ​​ в Swift Dictionary для создания пар ключ: значение и сохранять их в словаре, который затем можно записать в 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)

Это может использовать дополнительную проверку ошибок ипредполагается, что элементы всегда являются строками.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...