适用于Firebase的云功能:购买测试时的购买触发器

时间:2017-03-27 07:57:14

标签: firebase firebase-analytics google-cloud-functions

我正在尝试使用Cloud Functions for Firebase实施购买验证。这是我的index.js

'use strict';

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);

exports.updateDbOnPurchase = functions.analytics.event('in_app_purchase').onLog(event => {
    const uid = event.data.user.userId;
    const famKey = getFamKey(uid)
    console.log("UID: ${uid}, famKey: ${famKey}")
    admin.database().ref('/users/${uid}/famKey').then(snap => {
        if (snap.exists()) {
            admin.database().ref('/families/${famKey}/paydata/expire').set(Math.round(new Date().getTime()/1000) + 2592000)
        }
    });
});

在我的应用程序中,我实现了应用程序内订阅,将APK推送到alpha轨道并进行测试购买。但是这段代码从未触发过。

所以,我有以下问题:

  1. 应用内订阅是否适用于in_app_purchase事件?

  2. 它适用于测试购买吗?或者我必须在实际购买时进行测试?

  3. 订阅续订会触发事件吗?

  4. 是否可以在此代码中购买SKU?

  5. 如果盗版者使用Freedom / Lucky Patcher,会触发此代码吗? Firebase是否通过Google Play执行购买验证,或者我必须自己实施?

1 个答案:

答案 0 :(得分:4)

延迟一个月(使用数据库触发器完成实施后很长一段时间),我收到了Firebase支持的回复:

  

Hi Dima,

     

很抱歉我的回复有所延误。请看你的答案   以下问题:

     
    
        
  1. In-app订阅是否适用于in_app_purchase事件?
  2.        
     

应用程序内订阅不会触发in_app_purchase事件,因为   没有续订,退款,每月/早期订阅计入   in_app_purchases。

     
    
        
  1. 是否适用于测试购买?或者我必须测试真实购买?
  2.        
     

Firebase Analytics会自动过滤掉测试购买的内容   不会触发函数" in_app_purchase"事件

     
    
        
  1. 订阅续订会触发事件吗?
  2.        
     

订阅续订不会触发" in_app_purchase"事件   因为应用程序内订阅不会触发" in_app_purchase"   事件

     
    
        
  1. 是否可以在此代码中购买SKU?
  2.        
     

我认为你想要获得的是产品ID。您可以   通过访问event.user.appInfo属性获取产品ID   从功能。

     
    
        
  1. 如果盗版者使用Freedom / Lucky Patcher,会触发此代码吗? Firebase是否通过Google执行购买验证     玩,还是我必须自己实施?
  2.        
     

Firebase Analytics会执行一些购买验证措施   iOS和Android都有。但是,这只会影响您的分析数据。   如果您想在应用中打击盗版,则需要实施   验证自己。

     

如果您有任何其他问题,请告诉我。

希望,这对某人有用