【问题标题】:Unexpected Error when deploying braintree server on firebase functions在 Firebase 功能上部署 Braintree 服务器时出现意外错误
【发布时间】:2017-12-05 03:20:59
【问题描述】:

我在 Firebase 函数上遇到了 Braintree 服务器节点 SDK 问题。

但奇怪的是它在我的本地服务器上运行良好(在本地使用 firebase serve)。

在 firebase 上,应用只是在错误对象上返回 unexpectedError,而没有指定可理解的错误消息。

我什至尝试将网关对象的超时设置为较高的值,但问题仍然存在。

这是我管理令牌生成的服务器代码部分:

const functions = require("firebase-functions");
const express = require("express");
const braintree = require("braintree");

var gateway = braintree.connect({
  environment: braintree.Environment.Sandbox,
  merchantId: "************",
  publicKey: "************",
  privateKey: "************"
});

app.get("/generate_token", function (req, res) {
  gateway.clientToken.generate({}, function (err, response) {
    if(response)
      res.send({error: false, token: response.clientToken});
    else
      res.send({error: true, errorObj: err, response: response});
  });
});

在本地运行此代码会返回正确的结果:

{"error": false, "token": "*********"}

但是在 firebase 上部署并运行它会返回错误:

{
  "error": true,
  "errorObj": {
    "name": "unexpectedError",
    "type": "unexpectedError"
  }
}

【问题讨论】:

  • 您的项目是否在 Blaze 计划中?
  • @DougStevenson 不,目前我在 Spark 计划中(免费)

标签: node.js firebase express google-cloud-functions braintree


【解决方案1】:

对于免费层 (Spark) 上的 Firebase 项目,到非 Google 控制端点的传出套接字连接被阻止。这是为了防止自动滥用。您的项目需要升级到 Blaze 计划才能启用传出连接。出于开发目的,此成本可能可以忽略不计,但您仍应在升级前检查pricing page

【讨论】:

  • 对我来说似乎是合乎逻辑的,因为我目前仍处于开发模式,因此无法选择付费。所以我现在搬到了heroku。
猜你喜欢
  • 2019-09-30
  • 1970-01-01
  • 2021-09-25
  • 1970-01-01
  • 2020-01-31
  • 2023-03-28
  • 2017-08-06
  • 2018-07-14
  • 2018-07-12
相关资源
最近更新 更多