У меня есть данные, которые я хочу хранить в нескольких коллекциях, и применяю лучшие практики Firebase Firestore. Вот документ:
[
"postID": documentID,
"category": self.category,
"title": self.postTitle,
"description": self.postDescription,
"date": self.postDate,
"imageURL": self.postImageURL
]
Моя идея заключается в том, чтобы хранить один и тот же документ в нескольких местах под одним и тем же идентификатором, чтобы его можно было быстрее найти. Вот что я пытаюсь сделать:
let documentID: String = db.collection("collectionName").document().documentID
let allPosts: DocumentReference = db.collection("allPosts").document(documentID)
let postsByDate: DocumentReference = db.collection("dates").document(self.postDate).collection(documentID)
let postsByCategory: DocumentReference = db.collection("category").document.(self.category).collection(documentID)
Когда я сгенерировал documentID раз и навсегда, я не хочу addDocument
, а скорее setData
, чтобы он не вкладывал данные с другим идентификатором, но CollectionReference, похоже, не имеет setData
.
Я даже пытался использовать db.document("dates").setData()
, но это выдает ошибку:
Terminating app due to uncaught exception 'FIRInvalidArgumentException', reason: 'Invalid document reference. Document references must have an even number of segments, but dates has 1'
Как мне поступить об этом?