当键是特定值时,运行firebase云功能


const functions = require('firebase-functions');
var IAPVerifier = require('iap_verifier');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
exports.verifyReceipt = functions.database.ref('/Customers/{uid}/updateReceipt')
    .onWrite(event => {
        const uid = event.params.uid;
         var receipt = event.data.val();
    (strReceipt).toString('base64');
var client = new IAPVerifier('IAP_secretkey')
client.verifyAutoRenewReceipt(receipt, true,function(valid, msg, data){
    console.log(' RECEIPT');
  if(valid) {
    console.log('VALID RECEIPT');
    console.log('msg:' + msg);
   var strData = JSON.stringify(data);
    console.log('data"' + strData);
    const newReceiptRef = admin.database().ref('/Customers/{uid}/');
    newReceiptRef.update({'receiptData1': data});
     const recVerRef = admin.database().ref('/Customers/{uid}/');
    newReceiptRef.update({'updateReceipt': 0});

    // update status of payment in your system
  }else{
    console.log('INVALID RECEIPT');
     console.log('msg:' + msg);
    var strData = JSON.stringify(data);
    console.log('data"' + strData);
  }
});
    });

这是我的节点JS云功能。" UpdatereCeipt"的可能值是0和1。仅在值为1时才能运行云功能?

谢谢。

当存在特定值时,无需触发函数。

我可以想到两个选择:

  1. 根据updateReceipt值将节点写入其他分支。
  2. if添加到您的代码中。

第二个选项绝对是最简单的:

exports.verifyReceipt = 
functions.database.ref('/Customers/{uid}/updateReceipt')
  .onWrite(event => {
    const uid = event.params.uid;
    var receipt = event.data.val();
    if (receipt.updateReceipt === 0) {
      var client = new IAPVerifier('IAP_secretkey')
      ...

另外,您可以将更新的收据与新收据保持在单独的分支中。这样,您就可以仅为新收据触发功能。

相关内容

  • 没有找到相关文章

最新更新