使用 Firebase JS SDK 版本 9 实施 Stripe 订阅
Implement Stripe subscription with Firebase JS SDK version 9
我在我的 Web 应用程序中使用 Firebase JS V9。我正在尝试将 Firebase 中的 Stripe Etension 实施到我的应用程序中。
此扩展的文档尚未更新以支持 Firebase v9。我已经在 Twitter 上确认文档将会更新,但目前没有预计到达时间:)
这是他们在以前的 Firebase 版本中的做法:
const docRef = await db
.collection('customers')
.doc(currentUser.uid)
.collection('checkout_sessions')
.add({
price: 'price_1GqIC8HYgolSBA35zoTTN2Zl',
success_url: window.location.origin,
cancel_url: window.location.origin,
});
// Wait for the CheckoutSession to get attached by the extension
docRef.onSnapshot((snap) => {
const { error, url } = snap.data();
if (error) {
// Show an error to your customer and
// inspect your Cloud Function logs in the Firebase console.
alert(`An error occured: ${error.message}`);
}
if (url) {
// We have a Stripe Checkout URL, let's redirect.
window.location.assign(url);
}
});
所以我正在尝试这样做,但是使用 v9 中的新内容,一切都不同了。我在网上搜索过,我能找到的唯一解决方案是关于以前的 Firebase 版本。
这是我第一次使用 Firebase,所以也没有帮助。
有人知道如何在 Firebase JS SDK V9 中执行上述代码片段吗?
谢谢!
您会在下方找到代码的 V9 版本。在 JS SDK 文档中有两个选项卡,一个用于 V9,一个用于 V8,因此从一个版本转换到另一个版本并不是很难。 Example for the onSnapshot()
method.
import { collection, addDoc, onSnapshot } from "firebase/firestore";
const docRef = await addDoc(collection(db, `customers/${currentUser.uid}/checkout_sessions`), {
price: 'price_1GqIC8HYgolSBA35zoTTN2Zl',
success_url: window.location.origin,
cancel_url: window.location.origin,
});
onSnapshot(docRef, (snap) => {
const { error, url } = snap.data();
if (error) {
// Show an error to your customer and
// inspect your Cloud Function logs in the Firebase console.
alert(`An error occured: ${error.message}`);
}
if (url) {
// We have a Stripe Checkout URL, let's redirect.
window.location.assign(url);
}
})
我在我的 Web 应用程序中使用 Firebase JS V9。我正在尝试将 Firebase 中的 Stripe Etension 实施到我的应用程序中。
此扩展的文档尚未更新以支持 Firebase v9。我已经在 Twitter 上确认文档将会更新,但目前没有预计到达时间:)
这是他们在以前的 Firebase 版本中的做法:
const docRef = await db
.collection('customers')
.doc(currentUser.uid)
.collection('checkout_sessions')
.add({
price: 'price_1GqIC8HYgolSBA35zoTTN2Zl',
success_url: window.location.origin,
cancel_url: window.location.origin,
});
// Wait for the CheckoutSession to get attached by the extension
docRef.onSnapshot((snap) => {
const { error, url } = snap.data();
if (error) {
// Show an error to your customer and
// inspect your Cloud Function logs in the Firebase console.
alert(`An error occured: ${error.message}`);
}
if (url) {
// We have a Stripe Checkout URL, let's redirect.
window.location.assign(url);
}
});
所以我正在尝试这样做,但是使用 v9 中的新内容,一切都不同了。我在网上搜索过,我能找到的唯一解决方案是关于以前的 Firebase 版本。
这是我第一次使用 Firebase,所以也没有帮助。
有人知道如何在 Firebase JS SDK V9 中执行上述代码片段吗?
谢谢!
您会在下方找到代码的 V9 版本。在 JS SDK 文档中有两个选项卡,一个用于 V9,一个用于 V8,因此从一个版本转换到另一个版本并不是很难。 Example for the onSnapshot()
method.
import { collection, addDoc, onSnapshot } from "firebase/firestore";
const docRef = await addDoc(collection(db, `customers/${currentUser.uid}/checkout_sessions`), {
price: 'price_1GqIC8HYgolSBA35zoTTN2Zl',
success_url: window.location.origin,
cancel_url: window.location.origin,
});
onSnapshot(docRef, (snap) => {
const { error, url } = snap.data();
if (error) {
// Show an error to your customer and
// inspect your Cloud Function logs in the Firebase console.
alert(`An error occured: ${error.message}`);
}
if (url) {
// We have a Stripe Checkout URL, let's redirect.
window.location.assign(url);
}
})