【问题标题】:How to implement json object in Cloud Functions for Firebase?如何在 Cloud Functions for Firebase 中实现 json 对象?
【发布时间】:2018-03-05 23:22:02
【问题描述】:

我想通过将原始收据发送到 App Store 服务器进行验证并使用 Firebase 云功能取回经过验证的收据来验证 Apple 应用购买收据。

var jsonObject = {
            'receipt-data': receiptData,
            password: functions.config().apple.iappassword
        };
        var jsonData = JSON.stringify(jsonObject);
        var firebaseRef = '/' + fbRefHelper.getUserPaymentInfo(currentUser);

        let url = "https://sandbox.itunes.apple.com/verifyReceipt";//or production  
        request.post({
            headers: { 'content-type': 'application/x-www-form-urlencoded' },
            url: url,
            body: jsonData
        }, function (error, response, body) {
            if (error) {

            } else {
                var jsonResponse = JSON.parse(body);
                if (jsonResponse.status === 0) {
                    console.log('Recipt Valid!');

                } else {

                    console.log('Recipt Invalid!.');

                }
                if (jsonResponse.status === 0 && jsonResponse.environment !== 'Sandbox') {
                    console.log('Response is in Production!');
                }
                console.log('Done.');
            }
        });

这是逻辑代码。如何输入收据 JSON 对象(位于 Firebase 数据库中)以及如何将此代码集成到 http 函数中?我正在使用“请求”npm 库。

【问题讨论】:

  • 您在尝试创建 HTTP 函数时遇到了什么具体问题?
  • 我不确定如何获取我在实时 Firebase 数据库中为每个用户存储的收据。如果我使用数据库云功能 .onwrite() 或 .onupdate() 我可以使用 db .ref('Customers/{uid}/receiptData') 访问收据并使用 event.data 获取收据然后传递它进入这个逻辑。但是,使用 http 功能,我无法找到执行此类操作的文档。另外,由于我是 node.js 的新手,我很难理解 http 云函数的流程和结构。具体来说,我该如何实现这个逻辑代码。
  • 您通常会在 Cloud Functions 代码中使用 Firebase Admin SDK 来访问数据库。见stackoverflow.com/questions/43650472/…

标签: javascript node.js firebase google-cloud-functions firebase-cloud-functions


【解决方案1】:

根据您的评论,您似乎不知道如何从 HTTPS 类型函数中查询数据库。您可以为此使用Firebase Admin SDK。如何做到这一点有lots of examples。特别是,这个uppercase quickstart sample 说明了它。你可以这样开始:

// The Firebase Admin SDK to access the Firebase Realtime Database. 
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);

【讨论】:

  • 指的是:'exports.makeUppercase = functions.database.ref('/messages/{pushId}/original') .onWrite(event => { const getSomethingPromise = admin.database()。 ref(/important/messages/{pushId}).once('value'); return getSomethingPromise.then(results => { const somethingSnapshot = results[0]; // 对快照做一些事情 }) }) ' 我有点困惑。 .onwrite() 不就是写数据事件发生时访问数据吗?我可以在 http func 中查询 db 吗?
猜你喜欢
  • 2017-09-07
  • 2018-01-03
  • 2022-12-01
  • 2017-08-03
  • 2017-08-02
  • 1970-01-01
  • 1970-01-01
  • 2017-10-09
  • 2017-09-15
相关资源
最近更新 更多