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

我正在尝试使用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轨道并进行测试购买 . 但这段代码从未触发过 .

所以,我有以下问题:

  • 应用程序内订阅是否适用于 in_app_purchase 事件?

  • 它适用于测试购买吗?或者我必须测试真实购买?

  • 订阅续订会触发事件吗?

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

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

回答(1)

3 years ago

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

嗨迪马,很抱歉我的回复有所延误 . 请参阅以下问题的答案:In-app订阅是否适用于in_app_purchase事件?应用内订阅不会触发in_app_purchase事件,因为没有续订,退款,每月/早期订阅计入in_app_purchases . 它适用于测试购买吗?或者我必须测试真实购买? Firebase Analytics会自动过滤掉测试购买,因此不会触发该功能的“in_app_purchase”事件 . 订阅续订会触发事件吗?订阅续订不会触发“in_app_purchase”事件,因为应用程序内订阅不会触发“in_app_purchase”事件 . 是否可以在此代码中购买SKU?我假设你想要获得的是产品ID . 您可以通过从函数访问event.user.appInfo属性来获取产品ID . 如果海盗使用Freedom / Lucky Patcher,会触发此代码吗? Firebase是否通过Google Play执行购买验证,或者我必须自己实施? Firebase Analytics会在iOS和Android上执行一些购买验证 . 但是,这只会影响您的分析数据 . 如果您想在应用中打击盗版,则需要自行实施验证 . 如果您有任何其他问题,请与我们联系 .

希望,这对某人有用