Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.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
如何在Firebase的云函数日志中使用相同的执行id_Firebase_Firebase Realtime Database_Google Cloud Functions - Fatal编程技术网

如何在Firebase的云函数日志中使用相同的执行id

如何在Firebase的云函数日志中使用相同的执行id,firebase,firebase-realtime-database,google-cloud-functions,Firebase,Firebase Realtime Database,Google Cloud Functions,firebase中存在多个交叉/并发执行。当发生新的执行并且忘记旧的执行id时,日志id会更改。因此,执行id仅向前移动。当旧函数恢复时,它使用新的执行id。是否有一种方法可以实现旧函数的旧执行id和新函数的新执行id 工作流: 假设函数1和函数2是相同函数的不同触发器。 1.Function1执行一些db读取和http请求。这将返回一个http承诺-这需要一些时间(可能需要几毫秒)。让我们假设它在日志中的执行id是154690519665944 2.在函数1等待时触发函数2。函数2获取执行i

firebase中存在多个交叉/并发执行。当发生新的执行并且忘记旧的执行id时,日志id会更改。因此,执行id仅向前移动。当旧函数恢复时,它使用新的执行id。是否有一种方法可以实现旧函数的旧执行id和新函数的新执行id

工作流
假设函数1和函数2是相同函数的不同触发器。
1.Function1执行一些db读取和http请求。这将返回一个http承诺-这需要一些时间(可能需要几毫秒)。让我们假设它在日志中的执行id是
154690519665944

2.在函数1等待时触发函数2。函数2获取执行id
154690574405903
。function2也执行同样的操作并等待http响应。
3.Function1恢复,得到http响应,在日志记录时,它在日志中使用另一个执行id
154694739233261

执行id
154690519665944
发生了什么变化

由于有多个触发器同时发生,要确定函数是否成功完成,唯一的方法就是检查日志。因此,通过使用执行id作为过滤器,我可以找到函数是否成功执行。但由于firebase随机更改执行id,我想我必须找到另一个解决方案


PS:有一个更新调用将触发相同的函数。这会改变父函数执行id吗?

如果看不到您的代码或完整的日志,我认为无法提供明确的答案

然而,听起来您要问的问题是如何在异步事务中将数据保存在内存中。无论Firebase与否,您基本上有两种选择:

  • 在测试的第一部分,将该数据提交到数据库 事务,然后在第二部分中检索它
  • 传递数据 从第一部分到第二部分,这样它就已经有了它

  • 您似乎依赖于执行id,因此我建议采用后一种方法,将该id作为输入传递给您的httprequest,并让您的调用服务器在其响应中返回该id。

    如果没有看到您的代码或完整的日志,我认为无法提供明确的答案

    然而,听起来您要问的问题是如何在异步事务中将数据保存在内存中。无论Firebase与否,您基本上有两种选择:

  • 在测试的第一部分,将该数据提交到数据库 事务,然后在第二部分中检索它
  • 传递数据 从第一部分到第二部分,这样它就已经有了它

  • 您似乎依赖于执行id,因此我建议采用后一种方法,将该id作为输入传递给您的httprequest,并让您调用的服务器在其响应中返回该id。

    我不确定是否理解您的要求。一个函数的每次执行都会得到它自己的执行ID,只要该函数在执行,这个ID就会一直保持。我不确定我是否理解你的要求。函数的每次执行都将获得自己的执行ID,只要该函数正在执行,该ID就会一直保持。表示“如果您需要在函数调用之间共享状态,您的函数应该使用诸如云数据存储、云Firestore或云存储之类的服务来持久化数据。”是的,使用DB。表示“如果您需要在函数调用之间共享状态,那么您的函数应该使用诸如云数据存储、云Firestore或云存储之类的服务来持久化数据。”