从Firebase云端function连接到条带时出错

我正在尝试使用Firebase和Stripe从我的Android应用程序处理信用卡付款。 我已经在客户端上获取了一个Stripe标记,并且在我的Firebase Cloud Function中使用了一个数据库触发器来捕获新订单的发布时间。 这是我的function代码。

const stripe = require('stripe')('sk_test_XXXXXXXXXXXXXXXXXXXXXXXX'); return admin.database() .ref() .child('orders') .child(userId) .child(orderId) .child('token') .once('value') .then(snapshot => { return snapshot.val(); }) .then(token => { const amount = order.amount; console.log('Amount:', amount); console.log('token:', token.id); const idempotency_key = orderId; const source = token.id; const currency = 'usd'; const charge = {amount, currency, source}; return stripe.charges.create(charge, { idempotency_key }); }) .then(charge => { console.log('Success:', charge); // If the result is successful, write it back to the database return event.data.adminRef.set(charge); }, error => { console.log('Error:', error); return; } ); enter code here 

这是产生以下错误:

错误:Error.Constructor(/user_code/node_modules/stripe/lib/utils.js:Error.Constructor)处的Error._Error错误(/user_code/node_modules/stripe/lib/Error.js:12:17) 120:13)在ClientRequest的Error.Constructor(/user_code/node_modules/stripe/lib/utils.js:120:13)。 (/user_code/node_modules/stripe/lib/StripeResource.js:206:9)在位于TLSSocket.socketErrorListener(_http_client.js)的ClientRequest.emit(events.js:188:7)处的emitOne(events.js:96:13) (内部/ process / next_tick.js)上的connectErrorNT(net.js:1021:8)处的TLSSocket.emit(events.js:188:7)处的emitOne(events.js:96:13) :80:11)at process._tickDomainCallback(internal / process / next_tick.js:128:9)

我找不到有关此错误的任何文档。 我已经尝试了所有我能想到的事情。 所有的variables都包含有效的数据。

这种类似的最可能的原因与您的代码无关 – 它与您订阅的Firebase计划有关。

除了Google的HTTPS服务外,完全免费的“Spark计划”(以及大多数人开始使用的计划)不允许出站networking连接。

即使是开发和testing,我也build议使用“Blaze计划”。 它允许networking连接。 虽然列出了使用价格(包括处理和networking连接),但Infobutton表示在这些价格上涨之前每个月都有一个免费的使用水平 ,而且这个水平通常足以进行开发和testing。