Comment implémenter le paiement Stripe dans Firestore sans utiliser firebase.auth
P粉731861241
P粉731861241 2023-09-01 22:10:29
0
1
496
<p>J'essaie d'utiliser les paiements Stripe dans mon application node.js pour vendre des produits aux utilisateurs sur WhatsApp. </p> <p>J'ai installé l'extension Stripe : stripe/firestore-stripe-payments@0.3.3 et suivi les instructions de la documentation : </p> <pre class="brush:php;toolbar:false;">const docRef = attendre la base de données .collection('clients') .doc (utilisateur actuel.uid) .collection('checkout_sessions') .ajouter({ prix : 'price_1GqIC8HYgolSxxxxxxxxx', success_url : window.location.origin, Cancel_url : window.location.origin, }); // Attendez que l'extension attache CheckoutSession docRef.onSnapshot((instantané) => { const { erreur, url } = snap.data(); si (erreur) { // Affiche l'erreur au client et vérifie les journaux de la fonction cloud dans la console Firebase. alert(`Une erreur s'est produite : ${error.message}`); } si (url) { // Nous avons une URL Stripe Checkout, redirigeons. window.location.assign(url); } });</pré> <p>Je reçois l'erreur suivante dans la console cloud : </p> <p><code>❗️[Erreur] : échec de la création d'une session de paiement pour le document [maxxxxxxxxxA] : l'identifiant fourni n'a pas d'enregistrement utilisateur correspondant. </code></p> <p>J'ai découvert que je devais utiliser l'ID utilisateur de l'authentification Firebase, mais comme j'exécute mon service dans une fonction (serveur backend), il n'y a pas de client/utilisateur dans l'authentification. </p> <p>Existe-t-il un autre moyen de créer des liens de paiement Stripe (individuels) ? Existe-t-il un moyen d'utiliser l'authentification Firebase sans client ? </p> <p>Merci d'avance. </p> <p>J'ai essayé d'utiliser auth,</p> <pre class="brush:php;toolbar:false;">importer { getAuth } depuis "firebase/auth" ; const auth = getAuth(); const user = auth.currentUser;</pre> <p>Mais j'obtiens l'erreur suivante : <code>FirebaseError : Firebase : Option requise lors du déploiement sur un hébergement sans source. (application/pas d'options)</code></p> <p>J'ai essayé ceci : https://stackoverflow.com/a/74732162/21612440</p> <p>et get<code>TypeError : impossible de lire la propriété 'getProvider' d'un élément non défini (lire 'getProvider')</code></p>
P粉731861241
P粉731861241

répondre à tous(1)
P粉821274260

Les fonctions Cloud (en principe) s'exécutent sans le contexte de l'utilisateur actuellement authentifié. Par conséquent, dans les fonctions cloud, auth.currentUser n’a presque aucun sens puisque chaque requête peut provenir d’un utilisateur différent.

Cependant, vous pouvez transmettre n'importe quel UID de votre choix à la base de données Firestore ici .doc(currentUser.uid). Donc, si vous pouvez déterminer l'UID pertinent d'une autre manière (sûre), vous pouvez transmettre cette valeur et l'extension Stripe la gérera pour ceutilisateur.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal