【问题标题】:Firebase functions - iterate entries and send notification for certain conditionsFirebase 函数 - 迭代条目并针对特定条件发送通知
【发布时间】:2018-09-25 23:15:50
【问题描述】:

有没有办法使用 Firebase 函数工具来迭代某个键的所有条目并为相关用户发送通知? 我们的数据库如下所示:

"Jobs" : {
    "066802368bd24eab86281df1927df508" : {
      "dates" : [ {
        "date" : 12,
        "day" : 0,
        "hours" : 17,
        "minutes" : 38,
        "month" : 4,
        "seconds" : 54,
        "time" : 61484283534357,
        "timezoneOffset" : -120,
        "year" : 2018
      } ],
      "duration" : "60",
      "jobBidds" : [ {
        "bid" : 552,
        "date" : {
          "date" : 12,
          "day" : 0,
          "hours" : 17,
          "minutes" : 38,
          "month" : 4,
          "seconds" : 54,
          "time" : 61484283534357,
          "timezoneOffset" : -120,
          "year" : 2018
        },
        "myJobId" : "066802368bd24eab86281df1927df508",
        "myPersonId" : "gAUhdaihH1VFUReTKTjjJtVQV112",
        "personId" : "gAUhdaihH1VFUReTKTjjJtVQV112"
      }, {
        "bid" : 56,
        "date" : {
          "date" : 12,
          "day" : 0,
          "hours" : 17,
          "minutes" : 38,
          "month" : 4,
          "seconds" : 54,
          "time" : 61484283534357,
          "timezoneOffset" : -120,
          "year" : 2018
        },
        "myJobId" : "066802368bd24eab86281df1927df508",
        "myPersonId" : "gAUhdaihH1VFUReTKTjjJtVQV112",
        "personId" : "gAUhdaihH1VFUReTKTjjJtVQV112"
      } ],
      "jobCategory" : "סטטיסטיקה",
      "jobImageURL" : "default",
      "jobLatLang" : {
        "latitude" : 32.106922499999996,
        "longitude" : 34.80368359375002
      },
      "jobType" : "PRIVATELESSONS",
      "myDetails" : "",
      "personUid" : "gAUhdaihH1VFUReTKTjjJtVQV112",
      "phoneNumber" : "865"
    },
    "4fdeb7dbfc5c423591df0144d9316f63" : {         etc

每个“工作”都有与之相关的日期。
我们希望服务器以某种方式遍历所有作业,并且如果(特定作业的)日期已过,服务器将向“myPersonId”发送通知通知他。
是否可以为函数设置时间戳(即告诉 firebase 每 10 分钟运行一次函数 X)? 有没有办法设置发送给用户的通知以在android(用户端)中打开特定活动?

【问题讨论】:

    标签: android firebase google-cloud-functions


    【解决方案1】:

    您将在下文中找到满足您需求的教程或代码示例的链接:

    1/要定期调用云函数,您必须通过 cron-job 通过 http 触发它。

    https://firebase.google.com/docs/functions/http-events)。

    https://www.youtube.com/watch?v=CbE2PzvAMxA

    2/ 发送通知:

    https://firebase.google.com/docs/functions/use-cases#notify_users_when_something_interesting_happens

    https://github.com/firebase/functions-samples/blob/master/developer-motivator/functions/index.js

    https://android.jlelse.eu/serverless-notifications-with-cloud-functions-for-firebase-685d7c327cd4

    PS:一个额外的建议:如果可能的话,您最好将日期存储为一个字符串。最好的选择是将您的日期转换为自 1970 年 1 月 1 日 00:00:00 GMT 以来的毫秒数

    【讨论】:

      【解决方案2】:

      我的团队遇到了类似的情况,我们在 index.js 中使用了一个简单的 setInterval。

      有一个执行通知功能的回调。

      也同意 Renaud 关于使用更好的时间戳的观点。我们使用了 firebase.database.ServerValue.TIMESTAMP,因为这将占用服务器时间,而不是用户的本地时间。希望能帮助到你。 ATB。

      https://firebase.google.com/docs/reference/js/firebase.database.ServerValue

      【讨论】:

        猜你喜欢
        • 2020-10-15
        • 1970-01-01
        • 1970-01-01
        • 2018-12-25
        • 2014-12-29
        • 1970-01-01
        • 2019-01-30
        • 1970-01-01
        • 2018-07-19
        相关资源
        最近更新 更多