首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >修复引用创建了一个"TypeError:将循环结构转换为JSON“

修复引用创建了一个"TypeError:将循环结构转换为JSON“
EN

Stack Overflow用户
提问于 2019-01-28 21:20:14
回答 1查看 1.9K关注 0票数 5

我在Vue JS应用程序中使用Firebase的Firestore:

代码语言:javascript
运行
复制
"firebase": "^5.8.0",
"vue-firestore": "^0.3.16",

当我尝试获取一个具有引用另一个文档的字段的文档(Firestore中的引用类型)时,我会得到以下错误:

代码语言:javascript
运行
复制
[Vue warn]: Error in render: "TypeError: Converting circular structure to JSON"

每当我将文档中该字段的类型更改为字符串时,它似乎工作得很好。

我理解这是因为Firestore中有些东西试图将文档(以及文档附带的一堆元数据)序列化到JSON,并且在某个地方有一个循环引用?

在我的数据结构和字段中,我没有循环引用。引用另一个文档的只是一个字段,而引用的文档没有对任何其他文档的引用。

我获取数据的代码是:

代码语言:javascript
运行
复制
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())
            })
          })
      }

所以我的问题是:

首先,我在代码中做错了什么吗?即使没有引发错误,Firestore的JS会为我解析引用吗?或者,我是否需要调用引用并自己解析它以获取引用的文档数据? 2)当您有可以引用的文档时,使用Firestore的最佳实践是什么?你应该使用推荐信吗?什么时候?你什么时候去变性?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-29 06:43:37

要回答关于存储引用的第二个问题:实际上,在编写这个答案时,没有将引用(即路径元素)存储为Reference类型而不是将它们存储为字符串的真正优势。

请从Firebase https://www.youtube.com/watch?v=Elg2zDVIcLo&t=274s观看这段官方视频,其中包含详细的解释(从4:34开始)。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54410448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档