Cloud Functions for Firebase:测试购买时的购买触发器

Cloud Functions for Firebase: purchase trigger on test purchase

我正在尝试使用 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 执行购买验证,还是我必须自己执行?

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

Hi Dima,

Sorry for the delay in my response. Please see the answers to your questions below:

  1. Does In-App subscription works with in_app_purchase event?

应用内订阅不会触发 in_app_purchase 事件,因为 不计入续订、退款、monthly/early 订阅 in_app_purchases.

  1. Is it works with test purchases? Or I must test on real purchase?

Firebase Analytics 会自动过滤掉测试购买,因此它 不会触发函数的 "in_app_purchase" 事件。

  1. Will event be triggered on subscription renewal?

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

  1. Is it possible to get purchase SKU in this code?

我假设你要获取的是产品ID。你可以 通过访问 event.user.appInfo 属性获取产品 ID 来自函数。

  1. In case of pirate using Freedom / Lucky Patcher will this code be triggered? Does Firebase performs purchase verification over Google Play, or I must implement it myself?

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

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

希望这对某人有用