代码之家  ›  专栏  ›  技术社区  ›  Nathan Wailes

Firebase函数不记录“console.log()”语句

  •  2
  • Nathan Wailes  · 技术社区  · 6 年前

    我一直在努力与下面的功能没有它的作用 console.log() db.collection console.log() 上面的语句会出现,但一旦我加上 打电话, 没有人 console.log() 在Firebase的日志中出现了声明。

    知道怎么回事吗?

    exports.purchaseItem = functions.https.onCall((data, context) => {
      console.log('data:')
      console.log(data)
      let lbcCustomerStripeToken = data.lbcCustomerStripeToken
      let lbcStoreId = data.lbcStoreId
      let amount = data.amount
      console.log('lbcCustomerStripeToken:')
      console.log(lbcCustomerStripeToken)
      console.log('lbcStoreId:')
      console.log(lbcStoreId)
      console.log('amount:')
      console.log(amount)
    
      let lbcFee = Math.round(amount * 0.02)
    
      db.collection('stores').doc(lbcStoreId).get().then(lbcStore => {
        if (!lbcStore.exists) {
          console.log('No such product!');
        } else {
          console.log('Document data:', product.data());
        }
        console.log('storeInfo:')
        console.log(lbcStore.data())
        return {message: 'Success'}
      })    
      .catch((error) => {
        console.log(error);
      });
    };
    
    1 回复  |  直到 5 年前
        1
  •  8
  •   Renaud Tarnec    6 年前

    get() 方法,参见文档 here 这表示“要在异步操作后返回数据,请返回一个promise。promise返回的数据将发送回客户端。”

    exports.purchaseItem = functions.https.onCall((data, context) => {
      console.log('data:')
      console.log(data)
      let lbcCustomerStripeToken = data.lbcCustomerStripeToken
      let lbcStoreId = data.lbcStoreId
      let amount = data.amount
      console.log('lbcCustomerStripeToken:')
      console.log(lbcCustomerStripeToken)
      console.log('lbcStoreId:')
      console.log(lbcStoreId)
      console.log('amount:')
      console.log(amount)
    
      let lbcFee = Math.round(amount * 0.02)
    
      return db.collection('stores').doc(lbcStoreId).get().then(lbcStore => {
        if (!lbcStore.exists) {
          console.log('No such product!');
        } else {
          console.log('Document data:', product.data());
        }
        console.log('storeInfo:')
        console.log(lbcStore.data())
        return {message: 'Success'}
      })    
      .catch((error) => {
        // To be adapted here, see https://firebase.google.com/docs/functions/callable#handle_errors
        console.log(error);
      });
    };
    

    另外,请注意,您应该为错误处理部分调整代码,请参阅 https://firebase.google.com/docs/functions/callable#handle_errors

    最后,确保你的 db 常量定义为 admin.firestore(); .

        2
  •  2
  •   Ido    5 年前

    console.log() 在特定函数的 Log

    https://console.firebase.google.com/u/0/project/<project-name>/functions/logs

    *改变 <project-name> 给你的(没有 < >

    *您可能需要选择特定的功能/日志级别才能实时查看日志。

        3
  •  2
  •   Monireh Dashtiani    5 年前

    您还可以使用文档中所述的查看日志:

    https://firebase.google.com/docs/functions/writing-and-viewing-logs#viewing_logs

    使用firebase工具查看日志

    firebase functions:log
    

    查看特定函数的日志

    firebase functions:log --only <FUNCTION_NAME>