Правильный способ хранения массива пользовательских объектов в Cloud Firestore? - PullRequest
0 голосов
/ 12 июня 2019

Я хочу сохранить пользовательский объект Event в базе данных Firebase, Event может иметь несколько StopOff и User, я держу их в объекте Event как [StopOff] и [User]

Однако, когда я пытаюсь сохранить в firebase, возникает проблема, заключающаяся в том, что эти типы не являются базовыми типами, которые можно сохранять в Firebase.

Это нормально для отдельных объектов, так как я могу использовать метод toAnyObject, который отображает их в базовый ключ и значения, однако с массивами я не вижу способа добиться этого для каждого элемента в массиве?

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

Вот метод, с которым у меня проблема

    func toAnyObject() -> Any {
    return [
        "name": name,
        "users": users,
        "startPoint": startPoint.toAnyObject(),
        "endPoint": endPoint.toAnyObject(),
        "stopOffs": stopOffs
    ]
}

Я уверен, что мой подход должен быть неверным, так как я привык к традиционным SQL-серверам, но оценил бы мой подход, исправляемый

1 Ответ

0 голосов
/ 12 июня 2019

Похоже, что с помощью

"users": users.map { $0.toAnyObject() }

внутри моей родительской функции toAnyObject, позволяет преобразовывать массив в объекты, как ожидается, и хранится в облачном хранилище, надеюсь, это лучшее решение

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