iOS: отправка / сохранение данных Firebase порциями - PullRequest
0 голосов
/ 25 апреля 2018

Я пытаюсь сохранить данные в FireBase, как это

class FirebaseManager {

    static let shared = FirebaseManager()

    private let tableRef = Database.database().reference(withPath: "XYZDemo")

    func add(item: HealthData) {
        self.tableRef.childByAutoId().setValue(item.dictionary)
    }
}

Этот код сохраняет данные по одному.

Как добавить несколько данных одновременно, т.е. сохранить 5значения сразу?

1 Ответ

0 голосов
/ 25 апреля 2018

Для одновременной записи в определенные дочерние узлы без перезаписи других дочерних узлов используйте метод updateChildValues ​​.

В основном вы создаете массив с обновлениями / записями, которые хотите выполнить, изаписать этот массив в Firebase.Вот пример, показывающий, что 1 сообщение написано в двух разных местах:

//Create the new key
let key = self.tableRef.childByAutoId().key
//Post data that is going to be written
let post = ["uid": userID,
            "author": username,
            "title": title,
            "body": body]
//Create the array with (two) updates
let childUpdates = ["/posts/\(key)": post,
                    "/user-posts/\(userID)/\(key)/": post]
//Write the array to the database
ref.updateChildValues(childUpdates)

Несколько вещей, о которых следует помнить, когда вы делаете это:

  • Это все или ничего,Либо все записи терпят неудачу, либо все записи успешны.Если хотя бы одна из записей в массиве завершится неудачно, то все записи завершатся неудачей.
  • Убедитесь, что вы используете правильную ссылку для каждой записи, поскольку она переопределит все данные в этом месте.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...