Firestore, как хранить ссылку на документ / как получить его? - PullRequest
0 голосов
/ 25 апреля 2018

Я новичок в Firestore / Firebase и пытаюсь создать новый документ с одним из полей, являющимся document reference для другого документа.Я прочитал все руководства и примеры из Firebase и ничего не нашел ...

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

Вот код, который я пробовал для создания части

    let db = Firestore.firestore()

    // Is this how you create a reference ??
    let userRef = db.collection("users").document(documentId)

    db.collection("publications").document().setData([
        "author": userRef,
        "content": self.uploadedImagesURLs
    ]) { err in
        if let err = err {
            print("Error writing document: \(err)")
        } else {
            print("Document successfully written!")
        }
    }

Ответы [ 2 ]

0 голосов
/ 15 января 2019

Этот способ отлично работает для меня:

let db = Firestore.firestore()
let documentRefString = db.collection("users").document(documentID)
let userRef = db.document(documentRefString.path)

Тогда, когда вы будете устанавливать данные:

db.collection("publications").document().setData([
    "author": userRef,
    "content": self.uploadedImagesURLs
]) { err in
    if let err = err {
        print("Error writing document: \(err)")
    } else {
        print("Document successfully written!")
    }
}
0 голосов
/ 14 июня 2018

Вы просто пропускаете один шаг.Мне потребовалось некоторое время, чтобы понять это.

Сначала сохраните переменную DocumentReference!

var userRef: DocumentReference!

Затем вы хотите создать указатель на идентификатор документа - создать DocumentReference из этой <- этой части, которую вы пропустили </p>

if let documentRefString = db.collection("users").document(documentId) {
  self.userRef = db.document("users/\(documentRefString)")
}

Наконец, возобновите сохранение ваших данных в базе данных

db.collection("publications").document().setData([
    "author": userRef,
    "content": self.uploadedImagesURLs
]) { err in
    if let err = err {
        print("Error writing document: \(err)")
    } else {
        print("Document successfully written!")
    }
}

Надеюсь, это поможет!

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