从Firestore读取Google云函数巫婆的善变执行时间

时间:2020-04-07 04:18:07

标签: javascript google-cloud-firestore google-cloud-functions

我编写了最简单的Google云功能,可以读取Firestore集合中的多个文档。

async function loadCodes()
{

  var errorCodes = [];
    let errorsRef = firestore.collection(ERROR_CODES_COLLECTION_NAME)
    .where("EntityNumber", "==", 7);
    try {
      await errorsRef.get()
      .then(qs => {
        qs.forEach(doc => {
          errorCodes.push(doc.data());
        });
      });


      return errorCodes;
    }
    catch (err) {

... 我在几分钟内多次调用了该函数。 在大多数情况下,执行时间约为预期的60毫秒。但是在10-15%的情况下,它需要1.5-2秒。

如何解释,是否有可能避免?

1 个答案:

答案 0 :(得分:0)

我想问题是loadCodes()是全局函数。 从集合中获取文档实际上需要将近一秒钟,但是由于这是一个全局函数,Google会将其(及其结果)保存在缓存中。因此,在大多数情况下,实际上不会调用loadCodes(),整个云函数的执行时间很短。当Google决定刷新环境时,LoadCodes会真正执行其工作,并且需要时间。