Я думаю, что спрашивают, как взять массив строк, как показано в вопросе, и записать их в 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)
Это может использовать дополнительную проверку ошибок ипредполагается, что элементы всегда являются строками.