Я пытаюсь позволить пользователю обновить свой способ оплаты по умолчанию после того, как он его добавит.Я получаю это в Firebase Функции: Error: No such source: card_1EhmibFZW9pBNLO2aveVfEm6
.
Это заставляет меня поверить, что мне нужно передать default_source
a src_XXX...
id, а не card_XXX...
id.У кого-нибудь есть идеи по этому поводу?
Функция Firebase:
// Update Stripe default card based on user choice
exports.updateDefaultSource = functions.firestore
.document("users/{userId}")
.onUpdate(async (change, context) => {
const newValue = change.after.data();
const previousValue = change.before.data();
console.log("previousValue.default_source: "+previousValue.default_source)
console.log("newValue.default_source: "+newValue.default_source)
if (
previousValue.default_source &&
newValue.default_source !== previousValue.default_source
) {
// this triggers on every update to profile (more overhead), can we reduce this?
try {
console.log("newValue.default_source: "+newValue.default_source)
const response = await stripe.customers.update(
previousValue.customer_id,
{ default_source: newValue.default_source },
(err, customer) => {
console.log(err);
}
);
return console.log("Response from Stripe update: " + response);
} catch (error) {
console.log(error);
await change.ref.set(
{ error: userFacingMessage(error) },
{ merge: true }
);
return reportError(error, { user: context.params.userId });
}
}
});
Функция Firebase записывает в журнал после добавления второй Карты в аккаунт: ![enter image description here](https://i.stack.imgur.com/wLYZv.png)