JS Google Cloud Function错误:Reference.update失败:第一个参数包含属性中未定义的

时间:2019-06-11 06:53:08

标签: javascript firebase-realtime-database google-cloud-functions

这是JS中的Google Cloud Function,出现以下错误,该函数成功创建了Stripe客户,但无法写回数据库。

我猜想这与snap.uid有关,对吗?以及如何获取已创建以触发功能的uid节点的User

  

错误:Reference.update失败:第一个参数包含未定义的   财产

exports.createStripeCustomerFromUser = functions.database.ref('/users/{userId}').onCreate((snap, context) => {

  const userSnap = snap.val(); 

  const first = userSnap.firstName;
  const last = userSnap.lastName;
  const email = userSnap.email;
  const description = first + ' ' + last;

  return stripe.customers.create({
    email: email,
    description: description,
    name: description,
  }).then((customer) => {
    var updatedUserData = {};
    updatedUserData[`/stripe_ids/${customer.id}`] = snap.uid;
    updatedUserData[`/stripe_customers/${snap.uid}/customer_id`] = customer.id;
    return admin.database().ref().update(updatedUserData);

  });

});

1 个答案:

答案 0 :(得分:1)

根据您的情况,使用

context.params.userId

userId来自

ref('/users/{userId}')