Я хотел бы искать документы с определенным идентификатором во время запроса группы сбора. Из того, что я прочитал, невозможно выполнить CGQ, используя идентификатор документа напрямую, поэтому я намерен отразить идентификатор документа в поле id
внутри документа.
Я пытался firestore.DocumentID
(см. фрагмент кода ниже), ожидая, что он будет служить часовым значением, представляющим идентификатор документа (еще не известно на момент вызова метода). Я обнаружил, что firestore.DocumentID
на самом деле является константой со значением "__name__"
, которая становится строковым значением поля id
в результирующем документе.
docRef, _, err := colRef.Add(ctx, map[string]interface{}{
"id": firestore.DocumentID, // this does not work
"events": events,
"url": url,
"enabled": true,
"created": firestore.ServerTimestamp,
"modified": firestore.ServerTimestamp,
})
Можно ли написать документ Идентификатор внутри документа в поле id
при атомарном вызове метода Add
?
Если так, каково это значение дозорного? Если нет, я должен выполнить транзакцию, которая сначала создает документ, а затем, в свою очередь, обновляет документ с полем id
?