参数类型不能分配给类型的参数

时间:2019-01-30 17:48:10

标签: javascript typescript google-cloud-firestore

我正在尝试通过以下操作遍历对象:

  const db = admin.firestore()
  const devicesRef = db.collection('devices')
  const devices = await devicesRef.get();
  devices.forEach(async (result, idx, array) => {

  });

但是我得到一个错误:

  

类型'(结果:任何,idx:任何,数组:任何)=>承诺'不能分配给类型'(结果:QueryDocumentSnapshot)=>无效'。

我不太了解。如果我摆脱了idx, array,该脚本可以正常运行,但是我想知道何时执行最后一个循环,这就是为什么我添加idx, array ...

任何想法错误消息可能意味着什么?

1 个答案:

答案 0 :(得分:1)

假设devices是一个对象数组,我认为您不能在那里分配函数,因为该函数只希望有一个参数可以获取单个设备。试试:

  const db = admin.firestore()
  const devicesRef = db.collection('devices')
  const result = await devicesRef.get();

  // adds all results to devices list
  List<any> devices = [];
  for (QueryDocumentSnapshot device : result.getResult()) {
    devices.add(device);
  }

  devices.forEach((device idx, array) => {
    if (idx === array.length -1) {
       // Do specific task
    }
    // some async function
    async (someOtherFunction) => {
       // do something with individual device
    }
});