Я использую Firebase Firestore внутри приложения Vue JS:
"firebase": "^5.8.0",
"vue-firestore": "^0.3.16",
Когда я пытаюсь выбрать документ, в котором есть поле, ссылающееся на другой документ (ссылочный тип в Firestore), я получаю следующую ошибку:
[Vue warn]: Error in render: "TypeError: Converting circular structure to JSON"
Всякий раз, когда я меняю тип этого поля в документе на строку, кажется, что он работает нормально.
Я понимаю, что это происходит из-за чего-то в Firestore JS SDK,Попытка сериализации документа (и набора метаданных, поставляемых вместе с документом) в JSON, и где-то есть циклическая ссылка?
В структуре и полях моих данных у меня нет циклической ссылки.Это просто одно поле, которое ссылается на другой документ, и в ссылочном документе больше нет ссылок на любой другой документ.
Мой код для извлечения данных:
methods: {
getContent() {
const db = this.$firebase.firestore();
db
.collection('places')
.doc(this.$route.params.placeKey)
.orderBy('name')
.get()
.then(snap => {
this.places = []
snap.forEach(doc => {
this.places.push(doc.data())
})
})
}
Итак, мои вопросы:
1) Прежде всего, я что-то неправильно делаю в своем коде?Даже если ошибка не возникла, JS SDK от Firestore разрешит эту ссылку для меня?Или мне нужно будет позвонить по ссылке и решить ее самостоятельно, чтобы получить данные ссылочного документа?2) Как лучше всего использовать Firestore, когда у вас есть документы, на которые вы можете ссылаться?Вы должны использовать ссылки?Когда?Когда бы вы денормализовали?
Спасибо!