ios - 当键为特定值时运行 firebase 云函数

标签 ios node.js firebase firebase-realtime-database google-cloud-functions

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);
  }
});
    });

这是我的 Node js 云函数。 'updateReceipt' 的可能值为 0 和 1。是否只有当值为 1 时才可以运行云函数?

谢谢。

最佳答案

无法仅在存在特定值时才触发函数。

我可以想到两种选择:

  1. 根据 updateReceipt 值将 Node 写入不同的分支。
  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')
      ...

或者,您可以将更新后的收据与新收据保存在不同的分支中。这样您就可以单独为新收据触发一个函数。

关于ios - 当键为特定值时运行 firebase 云函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46419138/

相关文章:

android - 使用 Firebase 测试实验室时,如何将我的模拟器的 ABI 指定为 x86_64?

ios - 如何使用键盘移动 textview 和 tableview?

node.js - 如何通过 Mocha 测试运行时参数?

javascript - node.js 中长进程的最大执行时间

java - 向适配器添加新项目时 ArrayAdapter 崩溃

java - 无法从 Firebase 检索信息到自定义 ListView Android

ios - 使用 FaSTLane 时如何设置 `-ferror-limit`

ios - 解密保存在钥匙串(keychain)中的字符串

ios - 无法选择 UIAlertController 中的按钮顺序

javascript - emberJS 挤压 nwJS require() 方法