Функция Typescript Cloud не компилируется - PullRequest
0 голосов
/ 15 мая 2019

У меня есть следующая облачная функция для получения данных из хранилища данных 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', потому что индексное выражение не относится к типу 'number'.allOrders [order.id] = order.data ();

Ответы [ 2 ]

1 голос
/ 15 мая 2019

Если вы хотите преобразовать элементы массива в новый массив, вы также можете использовать Array.map.

allUsers = users.map(user => user.data());
0 голосов
/ 15 мая 2019

Вы не можете индексировать массив, используя строку. Чтобы решить ее, вы можете:

Использовать forEach индекс в качестве индекса массива:

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

или добавление элементов в массив allUsers:

users.forEach(user => {
    allUsers.push(user.data());
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...