【问题标题】:Firebase Cloud Function Always Returns NullFirebase 云函数始终返回 Null
【发布时间】:2019-02-27 11:26:28
【问题描述】:

我正在尝试使用以下函数与 Stripe API 进行交互 - 它似乎工作正常,因为 key 对象已正确记录在控制台中并按预期显示。

exports.createEphemeralKey = functions.https.onCall((data,context) => {
  const stripe_version = data.api_version;
  const customerId = data.customer_id;
  if (!stripe_version) {
    throw new functions.https.HttpsError('missing-stripe-version','The stripe version has not been provided.');
  }
  if (customerId.length === 0) {
    throw new functions.https.HttpsError('missing-customerID','The customer ID has not been provided.');
  }
  return stripe.ephemeralKeys.create(
      {customer: customerId},
      {stripe_version: stripe_version}
  ).then((key) => {
    console.log(key);
    return key;
  }).catch((err) => {
      console.log(err);
      throw new functions.https.HttpsError('stripe-error', err);
  });
});

但是,当我从我的 Swift iOS 应用程序中调用此函数时,result?.data 始终为零。

let funcParams = ["api_version": apiVersion, "customer_id": "......"]
    functions.httpsCallable("createEphemeralKey").call(funcParams) { (result, error) in
        if let error = error as NSError? {
            print(error)
            completion(nil,error)
        }
        if let json = result?.data as? [String: AnyObject] {
            print("success")
            print(json)
            completion(json, nil)
        } else {
            print("fail")
            print(result?.data)
        }
    }

【问题讨论】:

    标签: ios swift firebase stripe-payments google-cloud-functions


    【解决方案1】:

    这可能是因为您没有返回“可以进行 JSON 编码的数据”(请参阅​​doc)。以下应该有效:

    ....
    ).then((key) => {
      console.log(key);
      return {key: key};
    })
    ....
    

    【讨论】:

    • key 本身是一个 JSON 对象,格式为:{ id: '....', object: 'ephemeral_key', associated_objects: [ { type: 'customer', id: '....' } ], created: ..., expires: ..., livemode: false, secret: 'jijiijji' }
    • 好的。如果你尝试返回一个简单的 JSON 对象 return {foo: 'bar'}; 怎么办?
    • 所以问题似乎来自您从 Stripe 获得的 JSON“密钥”对象。您可以根据前端的需要重新格式化它....
    • 我不知道为什么,但我再次运行它,它就成功了....一段时间以来我见过的最奇怪的事情
    猜你喜欢
    • 2021-08-15
    • 1970-01-01
    • 2020-01-02
    • 1970-01-01
    • 2021-03-04
    • 2019-04-12
    • 1970-01-01
    • 1970-01-01
    • 2019-05-05
    相关资源
    最近更新 更多