Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.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日志表示函数返回了未定义的预期承诺或值࿼;_Javascript_Firebase_Google Cloud Firestore_Google Cloud Functions_Firebase Admin - Fatal编程技术网

Javascript Firebase日志表示函数返回了未定义的预期承诺或值࿼;

Javascript Firebase日志表示函数返回了未定义的预期承诺或值࿼;,javascript,firebase,google-cloud-firestore,google-cloud-functions,firebase-admin,Javascript,Firebase,Google Cloud Firestore,Google Cloud Functions,Firebase Admin,这是返回错误的函数。我不擅长javascript,我尝试过修补返回,但似乎没有任何效果 exports.updateUser = functions.firestore .document('school/counts') .onUpdate((change, context) => { const newValue = change.after.data(); const admin_notices = newValue.admin_notices; if (

这是返回错误的函数。我不擅长javascript,我尝试过修补返回,但似乎没有任何效果

exports.updateUser = functions.firestore
  .document('school/counts')
  .onUpdate((change, context) => {
    const newValue = change.after.data();

  const admin_notices = newValue.admin_notices;

  if (admin_notices === 14){
    admin.firestore().collection('notifications').orderBy("date",'desc').limit(1).get().then(function(querySnapshot) {
      querySnapshot.forEach(function(doc) {
        return doc.ref.delete();
      });

      return;
    })
    .catch((error) => {
      return;    
    });
  }    
});

(编辑)以防意图不明确。如果通知数超过14,我只想删除最后一个通知。

它可能会进入一个
返回零件。如果将此函数的结果赋给变量,则该变量将未定义(因为您不返回任何内容),而且
forEach
中的返回似乎不正确。我只想删除最后一个文档。我应该将返回放在哪里?您需要返回一个承诺,该承诺只有在所有异步工作完成后才能解析。您在这个函数中执行了很多操作,但是忽略了由
get()
启动的承诺链。另外,
return doc.ref.delete()
实际上对您的情况没有帮助,因为您只是从内部函数而不是外部函数返回承诺。您肯定需要了解如何有效地使用JavaScript承诺,以便为云函数编写代码。如果没有云函数本身增加的复杂性,学习这一点可能会更容易零件。如果将此函数的结果赋给变量,则该变量将未定义(因为您不返回任何内容),而且
forEach
中的返回似乎不正确。我只想删除最后一个文档。我应该将返回放在哪里?您需要返回一个承诺,该承诺只有在所有异步工作完成后才能解析。您在这个函数中执行了很多操作,但是忽略了由
get()
启动的承诺链。另外,
return doc.ref.delete()
实际上对您的情况没有帮助,因为您只是从内部函数而不是外部函数返回承诺。您肯定需要了解如何有效地使用JavaScript承诺,以便为云函数编写代码。如果没有云函数本身增加的复杂性,学习这一点可能会更容易。