簡體   English   中英

Firebase 功能未觸發

[英]Firebase function is not triggering

我正在使用 expo-payments-stripe API 來支付一個 android 應用程序。 並且從以下 firebase 函數調用 Stripe 支付 API:

exports.payWithStripe = functions.https.onRequest((request, response) => {
    stripe.charges.create({
        amount: request.body.amount,
        currency: request.body.currency,
        source: request.body.token,
    }).then((charge) => {
            response.send(charge);
        })
        .catch(err =>{
            console.log(err);
        });

});

這是調用 firebase 函數的客戶端代碼:

payment = async () => {
    if (this.state.token) {
      fetch(
        "https://us-central1-<>.cloudfunctions.net/payWithStripe",
        {
          method: "POST",
          headers: {
            Accept: "application/json",
            "Content-Type": "application/json",
          },
          body: JSON.stringify({
            amount: this.state.amount,
            currency: "usd",
            token: this.state.token.tokenId,
          }),
        }
      )
        .then((response) => response.json())
        .then((responseJson) => {
          if (
            responseJson.status === "succeeded" &&
            responseJson.paid == true
          ) {
           
            this.setState({ status: "succeeded", loading: false });
          }
          console.log(responseJson);
        })
        .catch((error) => {
          this.setState({ status: "failed", loading: false });
          console.error(error);
        });
    }
  };
doPayment = async () => {
    const params = {
      number: this.state.number,
      expMonth: parseInt(this.state.expMonth),
      expYear: parseInt(this.state.expYear),
      cvc: this.state.cvc,
    };
    const token = await Stripe.createTokenWithCardAsync(params);
    this.setState({ token: token, loading: true });
    setTimeout(() => {
      this.payment();
    }, 5000);
    console.log(token);
  };

在測試模式下一切正常。 但是在將應用部署到 Play 商店后,Firebase 功能不會被觸發。 關於為什么會發生這種情況的任何建議? 另外,如果沒有彈出 expo,我還有什么其他選擇可以從 expo react native app for android 付款?

您可以檢查在 fetch 中添加 await 或從支付功能中刪除 async 嗎? 另外,您為什么將 setTimeout 添加到支付函數調用中?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM