我具有以下云功能,可从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();
答案 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());
});