Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Firebase函数不记录“日志”;console.log();声明_Javascript_Node.js_Firebase_Google Cloud Functions - Fatal编程技术网

Javascript Firebase函数不记录“日志”;console.log();声明

Javascript Firebase函数不记录“日志”;console.log();声明,javascript,node.js,firebase,google-cloud-functions,Javascript,Node.js,Firebase,Google Cloud Functions,我一直在努力解决下面的函数没有在Firebase日志中显示其console.log()语句的问题。如果我取出从db.collection调用开始的所有内容,顶部的console.log()语句将显示出来,但一旦我添加了db.collection调用,console.log()语句中的无一项将显示在Firebase的日志中 我对JavaScript不是非常熟悉(我通常使用Python进行后端编程),因此这可能是承诺如何工作的问题。我现在正在调查这件事 知道发生了什么吗 exports.purcha

我一直在努力解决下面的函数没有在Firebase日志中显示其
console.log()
语句的问题。如果我取出从
db.collection
调用开始的所有内容,顶部的
console.log()
语句将显示出来,但一旦我添加了
db.collection
调用,
console.log()
语句中的无一项将显示在Firebase的日志中

我对JavaScript不是非常熟悉(我通常使用Python进行后端编程),因此这可能是承诺如何工作的问题。我现在正在调查这件事

知道发生了什么吗

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);
  });
};

您必须返回异步
get()
方法返回的承诺,请参阅说明“要在异步操作后返回数据,请返回承诺。承诺返回的数据将发送回客户端”的文档

因此,以下措施应该有效:

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);
  });
};
另外,请注意,您应该为错误处理部分调整代码,请参阅


最后,确保您的
db
常量是用
admin.firestore()定义的

您可以在Firebase控制台的特定函数的
log
选项卡中看到通过
console.log()
打印的数据:

https://console.firebase.google.com/u/0/project//functions/logs

*将
更改为您的(无


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

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

使用firebase工具查看日志

firebase functions:log
查看特定函数的日志

firebase functions:log --only <FUNCTION_NAME>
firebase函数:仅日志

您可能需要使用。这些日志不起作用,并且未显示在firebase的日志中platform@KamelMili你在屏幕上看到了什么?您尝试访问的URL是什么?可能您没有按右侧的播放图标?它应该马上显示出来。不,我按了播放按钮,但总是这样,我非常着迷的是firestore和firebase模拟器的测试版。由于java存在错误,我无法安装,我确实有java>\u PS它在控制台中工作,但是您应该选择function和info作为类型来查看它