
// Android 的配置文件是在对应 Android 工程 中的设置中, 下载 google-services.json 文件.

// 注意: google-services.json 是要和对应的 Firebase Gradle插件一起配合使用的. 在这里并没有使用 Firebase Gradle 插件,所以我们需要把 google-services.json 转为 xml 再使用, 步骤如下:

// 打开命令行窗口
// 进入到 google-services.json 文件所在目录
// 运行如下命令  ---  到python 安装目录运行即可
// python -c """import urllib; import sys; sys.argv = ['transpy', '-i', './google-services.json', '-o', './googleservices.xml']; s = urllib.urlopen('https://raw.githubusercontent.com/sdkbox-doc/en/master/tools/generate_xml_from_google_services_json.py').read(); exec(s);"""
// 命令运行完成后, 会有一个 googleservices.xml 生成, 把它放到你的 Android 工程中的 res/values/googleservices.xml 就可以了

cc.Class({
    extends: cc.Component,

    properties: {
        logs: {
            default: null,
            type: cc.Label
        },
    },

    // use this for initialization
    onLoad: function () {
        this.initPlugin();
    },

    initPlugin: function() {
        this.initPluginFirebase();
    },

    initPluginFirebase: function() {
        if ('undefined' == typeof sdkbox) {
            this.log('sdkbox is undefined');
            return;
        }

        if ('undefined' == typeof sdkbox.firebase) {
            this.log('sdkbox.firebase is undefined');
            return;
        }

        sdkbox.firebase.Analytics.init();
    },
    //按钮模拟的firebase统计事件
    onButton1: function() {
        const evt = {}
        evt[sdkbox.firebase.Analytics.Param.kFIRParameterItemID] = 'id123456';
        evt[sdkbox.firebase.Analytics.Param.kFIRParameterItemName] = 'name123456';
        evt[sdkbox.firebase.Analytics.Param.kFIRParameterItemCategory] = 'category123456';
        evt[sdkbox.firebase.Analytics.Param.kFIRParameterPrice] = '123.4';

        // log event
        sdkbox.firebase.Analytics.logEvent(sdkbox.firebase.Analytics.Event.kFIREventViewItem, evt);

        // log custom event
        // evt['customKey'] = 'custom value';
        // sdkbox.firebase.Analytics.logEvent("customEvent", evt);

    },

    log: function(s) {
        cc.log(s);
        let lines = this.logs.string.split('\n');
        cc.log(lines);
        while (lines.length > 5) {
            lines.shift();
        }
        lines.push(s);
        this.logs.string = lines.join('\n');
    },

    // called every frame
    update: function (dt) {
    },
});