Работа с массивами и Firebase - PullRequest
0 голосов
/ 14 мая 2018

Нужно отправить массив в firebase в виде списка объектов с целыми числами в качестве имен ключей. Я знаю, что Firebase не поддерживает Arrays напрямую, поэтому задавался вопросом, как это сделать. Я создаю список товаров, которые пользователи добавляют в корзину пользователей. поэтому я подхожу к этому так:

func addItemtoCart(item: String, completed: @escaping (_ completed: Bool) -> ()) {    Firebase_REference_Cart.child(userID).child("itemIDs").updateChildValues(["itemiD": itemID])
  completed(true)
}

Я понимаю, что это не будет работать, потому что каждый раз, когда товар добавляется в корзину, он заменяет товар в разделе "ItemId". Я искал что-то вроде этого

CartITems: {
  0: "945495949856956",
  1: "9459469486895695"
  2: "J888568567857685"
}

Если бы кто-то мог описать, как сделать это от А до Я, наиболее описательным способом, это очень помогло бы. Я новичок в Firebase и мне нужно немного руководства.

1 Ответ

0 голосов
/ 14 мая 2018

Прежде всего создайте модель, например:

struct Model {
var id: String
init(id: String) {
   self.id = id 
}}

Затем создайте экземпляр этой модели в своем классе: var model = Model(id: "First Id") Затем, чтобы отправить ее в Firebase, используйте:

func addInstance(model: Model) -> Completable {
    return Completable.create( subscribe: { completable in
            let reference = Database.database()
                .reference()
                .child("Models")
                .childByAutoId
            var model = model
            model.id = reference.key
            reference.setValue(model.dictionary)
            self.modelVariable.value.append(model)
            completable(.completed)
        }
        else {
            completable(.error(NSError(domain: "Sample", code: 403, userInfo: [NSLocalizedDescriptionKey: "Server Error"])))
        }
        return Disposables.create()
    })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...