Я работаю над проектом Angular2, используя Firebase.
Мне нужно нажать все результаты запроса под одним и тем же ключом в this.guestPush
.
У меня есть несколько элементов select, которые содержат разные уровни пользователя. 4, 6, 9.
Когда выбран один уровень, результирующий объект сохраняется в массиве guestPush
, но при выборе другого уровня происходит следующая ошибка.
Я получаю эту ошибку:
ОШИБКА TypeError: this.guestPush [( "filter" + i)]. push не является функцией
Вот мой код:
guestPush: any[] = new Array;
level.forEach((lvl, index) => {
this.db.object(`levelsUsers/${lvl}/users`)
.subscribe(users => {
if (this.guestPush['filter_' + i]) {
this.guestPush['filter_' + i].push(users);
} else {
this.guestPush['filter_' + i] = users;
}
}, err => console.log(err));
});
Изменить ***
Объект пользователя, который содержит пользователя или пользователей, которые соответствуют фильтру:
Object {-KmSjAaxdCUvrPEQ8InI: Object, $key: "users", $exists: function}
-KmSjAaxdCUvrPEQ8InI: Object
admin:"false"
description:"desc"
...
...
verified:false
__proto__:Object
exists:function ()
$key:"users"
__proto__:Object
И this.guestPush[i] = users;
создает такой объект:
[Object]
0:Object
-KmSjAaxdCUvrPEQ8InI: Object
admin:"false"
description:desc"
...
...
verified:false
__proto__:Object
$exists:function ()
$key:"users"
__proto__:Object
length:1
__proto__:Array(0)
Итак, в следующем цикле я хочу добавить любые новые пользовательские объекты рядом с -KmSjAaxdCUvrPEQ8InI
или что угодно, пока он добавляется как значение ключа 0
.