Firebase的云功能:测试购买时触发购买

Dim*_*ira 1 firebase google-cloud-functions firebase-analytics

我正在尝试使用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)
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

在我的应用中,我实现了应用内订阅,将APK推送到Alpha跟踪并进行了测试购买。但是此代码从未触发过。

因此,我有以下问题:

  1. 应用内订阅是否可与in_app_purchase事件一起使用?

  2. 它适用于测试购买吗?还是我必须对真实购买进行测试?

  3. 续订会触发事件吗?

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

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

Dim*_*ira 5

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

嗨,迪玛,

很抱歉延迟回复。请在下面查看您问题的答案:

  1. 应用内订阅可与in_app_purchase事件一起使用吗?

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

  1. 它适用于测试购买吗?还是我必须对真实购买进行测试?

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

  1. 续订会触发事件吗?

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

  1. 是否可以用此代码购买SKU?

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

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

Firebase Analytics在iOS和Android上执行某种形式的购买验证。但是,这只会影响您的分析数据。如果您想打击应用程序中的盗版行为,则需要自己实施验证。

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

希望这对某人有用