Ich möchte Kommentare von RealTime Database erhalten. Ich habe die Aufgabe erledigt, aber Objekte werden erst nach der Rückkehr zur Seite angezeigt (nicht aktualisiert).Holen Sie Objekte mit Verweis in Funktion Desynchronisation
Standard angularfire2 Konstruktor innerhalb blog.service.ts
constructor(public afDb: AngularFireDatabase) {}
Meine Funktion Kommentare, um aus der DB. Dies ist nur eine von vielen Funktionen, ich habe keine Ahnung, wie man Referenz oder Objekte in einer Prozedur bekommt, und ich habe eine Funktion wie diese entwickelt.
getComments(blogTitle: string) {
const blogsRef = this.afDb.database.ref('blog-pl');
let commentsRef = null;
blogsRef.orderByChild('title').equalTo(blogTitle).on("child_added", function (snapshot) {
if (snapshot.hasChild('comments')) {
commentsRef = snapshot.child('comments').ref;
}
});
return this.afDb.list<Comment>(commentsRef, ref =>
ref.orderByChild('timestamp')
).valueChanges();
}
Natürlich möchte ich Observable Comment erhalten [], aber stattdessen bekomme ich null. Das Problem ist, dass commentsRef in
this.afDb.list<Comment>(commentsRef,...
erhalten kann nicht, bevor es Werte zurückgibt. Ich habe versucht, es innerhalb der Funktion zurückzugeben, wo ich einen Verweis auf commentsRef zuweisen. Aber es ruft Fehler: (56, 9) TS2347: Untyped Funktionsaufrufe möglicherweise Typ Argumente nicht akzeptieren. Was ich nicht lösen kann.
versuchen, es in comments.component.ts zu bekommen
public currentComments: Observable<Comment[]>;
constructor(private blogService: BlogService, private authServicec: AuthService) {}
ngOnInit(): void {
this.currentComments = this.blogService.getComments(this.blogTitle);
this.currentComments.subscribe(val => {
if (val.length != 0) {
this.areAnyComms = true;
}})
}
es in html Anzeige
<ul *ngFor="let curUserReview of (currentUsersReviews | async)?.slice().reverse()">
Warten auf Ihre Ratschläge und vielen Dank für Ihre Antworten verwenden.
Wie ich schon sagte, es TS2347: Untyped Funktionsaufrufe möglicherweise Typ Argumente Fehler nicht akzeptieren. – ImmoXZ
versuchen, Typ zu Ihrer Funktion hinzufügen 'getComments (blogTitle: string): Observable {...} '. –
Hareesh
funktioniert leider immer noch nicht (falsche Arten von Objekten). Gibt es noch eine andere Möglichkeit, diese Objekte zu bekommen? – ImmoXZ