【问题标题】:Firebase Reward Referrals using Firestore使用 Firestore 的 Firebase 奖励推荐
【发布时间】:2018-09-10 09:07:40
【问题描述】:

我正在尝试部署一个简单的 Firebase Cloud 功能。

我想在推荐人推荐的人注册时使用 Firestore 以应用内积分奖励推荐人。

这是我的node.js 函数。

exports.createUser = functions.firestore
    .document('users/{userId}')
    .onCreate(event => {

        let documentRef = admin.firestore.doc(`users/${event.data.referredBy}/cats/accountInformation`);

        console.log("Error giving hints:", documentRef);

        return documentRef.data.ref.set({

            credits: credits + 5

                .catch(error => {
                    console.log("Error giving hints:", error);
                }),
        }, {
            merge: true
        });

    });

我对@9​​87654323@ 很陌生。就语法而言,我环顾四周并尝试了不同的东西,但都没有奏效。任何帮助,将不胜感激。我找不到太多这方面的文档。

【问题讨论】:

  • 我讨厌来到这个网站。如果一个人发布一个问题,那么其他人很可能也面临同样的问题。将 OP 指向正确的方向,而不是无缘无故地拒绝投票帖子这种愚蠢的、不进步的行为。
  • 如果您想要一些建设性的反馈,我的建议是多解释一下您已经尝试过的内容。
  • 该代码有效吗?我很确定credits: credits + 5 不会起作用,因为您需要先查询当前用户的原始积分,然后操作号码然后回写。
  • 我只是在尝试不同的语法,并没有保存代码。我对 node.js 不是很熟悉,所以我无法重新创建我写的内容。我看不出我过去的尝试与我遇到的问题有什么关系。就是上面的函数在语法上不正确。
  • @KarloA.López 它不工作。我认为这可能是问题的一部分,但我不知道如何获取 credits 字段中的值并将其应用于变量。我有一种感觉,它不应该在返回函数中,但我不确定。

标签: android node.js firebase google-cloud-firestore


【解决方案1】:

这是一个示例,说明如何在不发出其他请求的情况下拖动写入的信息,只需使用 onCreate firestore 事件:

    exports.createUser = functions.firestore.document('users/{userId}').onCreate(event => {

//Doc ref 
let documentRef = admin.firestore.doc(`users/${event.data.referredBy}/cats/accountInformation`);

//Get the value you want from that document 
documentRef.get().then((doc) => {
  var docData = doc.data();

  var currentCredits = docData.credits;
  var newCredits = currentCredits + 5;

  //Then you return the promise, this time pointing the new ref
  return documentRef.set({credits:newCredits});
});


});

【讨论】:

  • 好的,所以问题是credits 值不会来自event 数据返回的Firestore 文档,而是来自documentRef 变量的另一个文档参考。这是因为我想奖励推荐人而不是刚刚注册的用户。我将如何引用该文件?这似乎是我没有弄清楚的主要问题。感谢您迄今为止的帮助。
  • 对不起,没有阅读问题的详细信息,请查看我的更新答案。
  • 啊!好的。我无法真正理解get 函数。我会尝试部署您的答案,并在测试完几分钟后回来查看
  • 它仍然无法正常工作。出于某种原因,我控制台上的每个日志都是空白的。由于某种原因,该功能没有被触发。我会尝试联系 Firebase 支持。如果您知道问题所在,请告诉我。否则,在那之前。
  • 你在部署这个功能吗?还是只是提供服务?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多