Я получаю неопределенный результат только в моем хранилище в режиме реального времени, но добавление работает нормально.Почему они не определены?
Вот так выглядит мое хранилище Firebase:
storage
|
-- Objects
|
--0
|
--Address
| |
| --City : "Wedel"
| |
| -- Number: 123
| |
| -- Street: "Musterstraße"
| |
| -- ZipCode: 22880
|
-- CompanyName: "MusterArchitekt"
|
-- CostumerGroup: "Planer"
|
-- Fax: "04055675369"
|
-- Person
|
-- 0
|
-- FirstName: "Max"
...........
И т. Д.
Мой код Angular7 напрямую копируется для тестирования из GitПример:
import { Component, OnInit } from '@angular/core';
import { AngularFireDatabase, AngularFireList } from '@angular/fire/database';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';
@Component({
selector: 'app-apitest',
template: `
<ul>
<li *ngFor="let item of items | async">
<input type="text" #updatetext [value]="item.text" />
<button (click)="updateItem(item.key, updatetext.value)">Update</button>
<button (click)="deleteItem(item.key)">Delete</button>
</li>
</ul>
<input type="text" #newitem />
<button (click)="addItem(newitem.value)">Add</button>
<button (click)="deleteEverything()">Delete All</button>
`,
styleUrls: ['./apitest.component.css']
})
export class ApitestComponent implements OnInit {
itemsRef: AngularFireList<any>;
items: Observable<any[]>;
constructor(db: AngularFireDatabase) {
this.itemsRef = db.list('Objects/0/Address');
// Use snapshotChanges().map() to store the key
this.items = this.itemsRef.snapshotChanges().pipe(
map(changes =>
changes.map(c => ({ key: c.payload.key, ...c.payload.val() }))
)
);
}
addItem(newName: string) {
this.itemsRef.push({ text: newName });
}
updateItem(key: string, newText: string) {
this.itemsRef.update(key, { text: newText });
}
deleteItem(key: string) {
this.itemsRef.remove(key);
}
deleteEverything() {
this.itemsRef.remove();
}
ngOnInit() {
}
}
Каждый раз, когда я пытаюсь получить доступ, например, к this.db.list ('Objects / 0 / Address'), я получаю только 4 неопределенных значения.Вместо Города: "Wedel", Номер: 123 и т. Д.
Я бы хотел, чтобы Массив Всего Объектов делал такие вещи:
items = this.db.list("Objects");
city = items[0].Address.City;
Кто-нибудь знает, кому это делать?в Angular7?
РЕДАКТИРОВАТЬ:
Кроме того, когда я вызываю this.items.forEach (e => console.log (e));Я понял.
(4) [{…}, {…}, {…}, {…}]
0: {0: "W", 1: "e", 2: "d", 3: "e", 4: "l", key: "City"}
1: {key: "Number"}
2: {0: "M", 1: "u", 2: "s", 3: "t", 4: "e", 5: "r", 6: "s", 7: "t", 8: "r", 9: "a", 10: "ß", 11: "e", key: "Street"}
3: {key: "ZipCode"}
length: 4
__proto__: Array(0)
Это не очень помогает мне, но лучше, чем неопределенное ...