【问题标题】:VueFire: Resolving references after setting on the clientVueFire:在客户端设置后解析引用
【发布时间】:2021-01-22 02:00:34
【问题描述】:

根据docu“[...] VueFire 将自动绑定最多一个嵌套引用。”。这很好用,如果我从数据库中检索一个属性为ref 的对象(地图):ref 会在客户端自动解析(ref_property 不会保存对象的路径(例如@987654326 @) 但实际数据 ({username: 'john', hometown: 'autumn'})。

问题是:我如何在客户端上更新ref_property(例如,假设last_edit_by_ref),a.)VueFire 能够将其解析为 UI 的有效 JSON 和 b。)确保它同时作为 ref 存储在数据库中?

按照here 的解释,我尝试(再次)从集合中获取引用的对象(“要编写对文档的引用,您需要传递实际的引用对象”)。然而,这个问题是 VueFire 没有解决这个问题,导致 UI 中出现空值:

post.last_edit_by_ref = db.collection('users').doc('123')

背景:如果我设置的是纯 JSON,则该属性不再作为 reference 存储在数据库中。这很糟糕,因为链接的对象很可能会被更改(然后链接的 objekt 将保存复制的过时数据)。

【问题讨论】:

    标签: firebase vue.js google-cloud-firestore vuefire


    【解决方案1】:

    它与 VueFire 无关。这就是 firebase 如何解析它在 set/update 方法中得到的 Object。

    如果你专注于这部分:

    const data = {
      age: 18,
      name: "John",
      carRef: db.collection('cars').doc('john-car'),
    }
    
    await db.collection('users').doc('john').set(data);
    

    您将在 firestore 中获得 ref。反过来,VueFire 会自动绑定对象。

    对于您的情况,我认为您需要找到一种方法来获取db.collection('users').doc(last_edit_user_id) 来制作帖子的参考。

    【讨论】:

      猜你喜欢
      • 2012-04-02
      • 1970-01-01
      • 1970-01-01
      • 2017-11-14
      • 1970-01-01
      • 2012-08-28
      • 2014-10-01
      • 2013-01-22
      • 2020-05-03
      相关资源
      最近更新 更多