我正在尝试使用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执行购买验证,或者我必须自己实施?
答案 0 :(得分:4)
延迟一个月(使用数据库触发器完成实施后很长一段时间),我收到了Firebase支持的回复:
Hi Dima,
很抱歉我的回复有所延误。请看你的答案 以下问题:
- 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执行购买验证 玩,还是我必须自己实施?
醇>Firebase Analytics会执行一些购买验证措施 iOS和Android都有。但是,这只会影响您的分析数据。 如果您想在应用中打击盗版,则需要实施 验证自己。
如果您有任何其他问题,请告诉我。
希望,这对某人有用