Как сохранить пользовательские объекты в Firestore? - PullRequest
0 голосов
/ 27 февраля 2020

Привет всем У меня есть быстрый вопрос. Я пытаюсь сохранить пользовательскую модель в Firestore следующим образом:

import Firebase

    let city = City(name: "Los Angeles",
                    state: "CA",
                    country: "USA",
                    isCapital: false,
                    population: 5000000)
    do {
        try db.collection("cities").document("LA").setData(from: city)
    } catch let error {
        print("Error writing city to Firestore: \(error)")
    }

Проблема в том, что .setData (from: city) не работает? Это говорит, что посторонний аргумент помечен как «от:», и когда я это делаю, я получаю ошибку Firestore устарел или мне нужно импортировать что-то еще?

Спасибо

1 Ответ

0 голосов
/ 27 февраля 2020

Документация не совсем неверна в этом, она просто неполная в одном разделе. Firebase добавил расширение для упрощения создания пользовательских объектов, но не упомянуло это расширение в документации. (Я предполагаю, что это расширение)

Документация по Пользовательские объекты является примером кода, для которого требуется расширение

Простое исправление, добавив его в ваш подфайл

  pod 'FirebaseFirestoreSwift'

, а затем выполните обновление модуля либо в терминале, либо в cocoapods.

Затем в своем классе просто обновите импорт, включив в него этот

import Cocoa
import FirebaseCore
import FirebaseFirestore
import FirebaseFirestoreSwift

Для справки код в это были документы

try db.collection("cities").document("LA").setData(from: city)

, а это

let docRef = db.collection("cities").document("LA")

 docRef.getDocument { (document, error) in
    let result = Result {
    try document.flatMap {
       try $0.data(as: City.self)
    }
 }

и эта строка

.data(as: City.self)

и

.setData(from:

были "нарушителями спокойствия" 'который нуждался в FirebaseFirestoreSwift

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