【问题标题】:Auto-generate a field in a Firestore field在 Firestore 字段中自动生成字段
【发布时间】:2017-12-15 20:06:07
【问题描述】:

在“shows”集合中的 Firestore 文档中,我有两个字段:“艺术家”和“日期”。创建一个名为“name”的新字段的最佳方法是什么,它结合了“artist”和“date”字段。

{
  "artist": "Pink Floyd",
  "date": "19650303"
}

例如,假设“艺术家”=“Pink Floyd”和“日期”=“19650303”。那么“名称”应该是“19650303_pinkfloyd”。

{
  "artist": "Pink Floyd",
  "date": "19650303",
  "name": "19650303_pinkfloyd"
}

我可以在 HTML 中组合这些字段。但我希望它存储在 Firestore 数据库中,以便我可以在其他应用程序中调用该字段。如果“艺术家”或“日期”字段发生变化,我显然希望“名称”字段发生变化。

这是 Google Cloud Functions 可以处理的吗?

【问题讨论】:

    标签: firebase google-cloud-firestore


    【解决方案1】:

    这是我为使其在 Google Cloud Functions 中工作而编写的函数。我很想知道这是否是实现这一目标的最佳方式,或者是否可以做得更好。

    // new name version that combines two variables in the event data to create a newnamee
    exports.createnewshowname = functions.firestore
      .document('shows/{showId}')
      .onWrite(event => {
        // Get an object representing the document
        // e.g. {'name': 'pinkfloyd', 'venue': 'stubbs'}
        var newValue = event.data.data();
        // access a particular field as you would any JS property
        var name = newValue.name;
        var venue= newValue.venue;
        var newname = name+"_" +venue
        // You must return a Promise when performing asynchronous tasks inside a Functions such as
        // writing to the Firebase Realtime Database.
        // Setting an "uppercase" sibling in the Realtime Database returns a Promise.
        return event.data.ref.set({
          newname: newname
        }, {merge: true});
      });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-26
      • 1970-01-01
      相关资源
      最近更新 更多