В C ++ 11 соответствующий текст можно найти в 8.3.6. Аргументы по умолчанию / 9 (Emphasis mine)
По умолчанию аргументы оцениваются каждый раз функция вызывается. Порядок оценки аргументов функции не указан. Следовательно, параметры функции не должны использоваться в аргументе по умолчанию, даже если они не оцениваются.
blockquote>То же словосочетание используется также стандартом C ++ 14, и оно найдено в тот же раздел .
Вы можете получить ключ, вернув его с данными:
data: any;
readData() {
this.db.list('listname').snapshotChanges().pipe(map(list => {
return list.map(items => {
return {key: items.payload.key, ...items.payload.val()}
})
})).subscribe(data => {
this.data = data;
});
}