Не удалось сослаться на путь документа Firestore - PullRequest
0 голосов
/ 27 июня 2018

Мне нужно добавить запись пользователя, используя путь сбора. Я использую следующий код:

var todays_date : String = ""
let dateFormatter : DateFormatter = DateFormatter()
        dateFormatter.dateFormat = "MMddyyyy"
        let date = Date()
        todays_date = dateFormatter.string(from: date)

docRef = Firestore.firestore().document("userData/scriptureTracking/users/" + user_id.replacingOccurrences(of: " ", with: "_") + "/" + todays_date)

docRef.setData(dataToSave) { (error) in
                if let error = error {
                    print("CloudFirestore Got error: \(error.localizedDescription)")
                } else {
                    print("CloudFirestore: Data has been saved!")
                }
}

Каким-то образом он не может ссылаться на него должным образом. Это терпит крах на этой линии. Если я удаляю последнюю обратную косую черту и 'todays_date', то она работает нормально (сохранение данных с использованием docRef). Но мне нужны и user_id, и todays_date для последующих запросов. Есть идеи?

1 Ответ

0 голосов
/ 29 июня 2018

Это потому, что ваш docRef не указывает на документ.

Помните, что все пути в Cloud Firestore следуют шаблону коллекция / документ / коллекция / документ / и т. Д.

Итак, если вы удалите последнюю часть своей функции и просто наберете:

docRef = Firestore.firestore().document("userData/scriptureTracking/users/" + user_id.replacingOccurrences(of: " ", with: "_"))

В результате получается коллекция под названием userData с документом под названием scriptureTracking, в которой есть коллекция под названием users, в которой документ равен идентификатору пользователя.

Если вы добавите дату к концу этого, то у вас будет коллекция , равная 06292018 (или как угодно). Скорее всего, вы хотите сделать этот документ также и внутри вложенной коллекции. Так что вы, вероятно, хотите что-то вроде ...

docRef = Firestore.firestore().document("userData/scriptureTracking/users/" + user_id.replacingOccurrences(of: " ", with: "_") + "/dailyEntries/" + todays_date)

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