firebase.auth を使用せずに Firestore で Stripe 決済を実装する方法
<p>node.js アプリで Stripe 支払いを使用して、whatsapp のユーザーに商品を販売しようとしています。 </p>
<p>ストライプ拡張機能 stripe/firestore-stripe-payments@0.3.3 をインストールし、ドキュメントの指示に従いました。</p>
<pre class="brush:php;toolbar:false;">const docRef = await db
.collection('顧客')
.doc(現在のユーザー.uid)
.collection('チェックアウト_セッション')
。追加({
価格: 'price_1GqIC8HYgolSxxxxxxxxx',
success_url: window.location.origin、
cancel_url: window.location.origin,
});
// 拡張機能が CheckoutSession をアタッチするのを待ちます
docRef.onSnapshot((スナップ) => {
const { エラー, URL } = snap.data();
if (エラー) {
// クライアントにエラーを表示し、Firebase コンソールでクラウド関数のログを確認します。
alert(`エラーが発生しました: ${error.message}`);
}
if (URL) {
// Stripe Checkout URL があるので、リダイレクトしましょう。
window.location.assign(url);
}
});</pre>
<p>クラウド コンソールで次のエラーが表示されます: </p>
<p><code>❗️[エラー]: ドキュメント [maxxxxxxxxxA] のチェックアウト セッションの作成に失敗しました: 指定された識別子には、対応するユーザー レコードがありません。 </code></p>
<p>Firebase Authentication の userId を使用する必要があることがわかりましたが、サービスを関数 (バックエンド サーバー) で実行しているため、認証にはクライアント/ユーザーがありません。 </p>
<p>(個別の)ストライプ チェックアウト リンクを作成する別の方法はありますか?クライアントなしで Firebase Authentication を使用する方法はありますか? </p>
<p>よろしくお願いします。 </p>
<p>認証を使ってみました。</p>
<pre class="brush:php;toolbar:false;">import { getAuth } from "firebase/auth";
const auth = getAuth();
const user = auth.currentUser;</pre>
<p>しかし、次のエラーが発生します: <code>FirebaseError: Firebase: ソース経由でホスティングにデプロイしない場合は、オプションを指定する必要があります。 (app/オプションなし)</code></p>
<p>これを試してみました: https://stackoverflow.com/a/74732162/21612440</p>
<p><code>TypeError を取得しました: 未定義のプロパティ 'getProvider' を読み取れません ('getProvider' を読み取ってください)</code></p>