Typescript Cloud函数未编译

时间:2019-05-15 07:27:29

标签: node.js typescript google-cloud-functions

我具有以下云功能,可从Firebase数据存储中获取数据,但它无法编译,不确定如何解决此问题。

import * as admin from 'firebase-admin';
import * as functions from 'firebase-functions';

admin.initializeApp(functions.config().firebase);

const db = admin.firestore();
const usersObj = db.collection('users')

export const getUsers = async () => {
    let allUsers: Array<any> = [];
    await usersObj.get().then(users => {
        users.forEach(user => {
            allUsers[user.id] = user.data();
        });
    });
    return allUsers;
}
  

错误:错误TS7015:元素隐式具有“ any”类型,因为   索引表达式不是“数字”类型。 allOrders [order.id] =   order.data();

2 个答案:

答案 0 :(得分:1)

如果要将数组元素转换为新数组,也可以使用Array.map

allUsers = users.map(user => user.data());

答案 1 :(得分:0)

您不能使用字符串为数组建立索引。要解决此问题,您可以:

使用forEach索引作为数组索引:

users.forEach((user, i) => {
    allUsers[i] = user.data();
});

或将项目推送到allUsers数组:

users.forEach(user => {
    allUsers.push(user.data());
});