'query' 在类型 'QueryFn' 中不存在 | angularfire2
'query' does not exist in type 'QueryFn' | angularfire2
'{ 查询类型的参数:{ limitTolast: number; orderByKey:布尔值; }; }' 不可分配给 'QueryFn' 类型的参数。对象文字只能指定已知属性,并且 'query' 不存在于 'QueryFn' 类型中。
package.json
"angularfire2": "^5.0.0-rc.3",
"firebase": "^4.5.1",
chat.service.ts
getMessages(): FirebaseListObservable<ChatMessage[]> {
return this.db.list('messages', {
query: { limitTolast : 25, orderByKey: true}
});
}
它不起作用,因为 AngularFire 需要一个函数作为第二个参数传递。
我认为您的示例是测试版中的正确方法。 (不是 100% 肯定)
您已经通过以下方式使用它:
// make sure to provide a child in the orderByChild call
getMessages(): Observable<ChatMessage[]> {
return this.db.list('/messages', ref => {
return ref.limitTolast(25).orderByKey(true)
});
}
在此处了解有关查询列表的更多信息:https://github.com/angular/angularfire2/blob/master/docs/rtdb/querying-lists.md
QueryFn 必须return一个firebase.database.Query,不能作废。
您可以像这样对查询进行编码,以便更清楚:
getMessages(): Observable<ChatMessage[]> {
return this.db.list('/messages', ref => {
let q = ref.limitTolast(25).orderByKey(true);
return q;
});
}
这将非常有效。我试过
getMessages(): Observable<ChatMessage[]> {
return this.db.list('/messages', ref =>
let q = ref.limitTolast(25).orderByKey(true);
return q;
);
}
有关查询的更多信息,请转到此 link:https://github.com/angular/angularfire2/blob/master/docs/rtdb/querying-lists.md
您可以试试这个代码:
return this.db.list('/categories', ref => ref.orderByChild('name')).valueChanges();
由于 Angular Fire 的更新,将 FirebaseListObservable 替换为 AngularFireList 并确保你 return firebase.database.Query 喜欢这样
getMessages(): AngularFireList<ChatMessage[]> {
return this.db.list('messages', ref => {
return ref.limitToLast(25).orderByKey();
});
}
'{ 查询类型的参数:{ limitTolast: number; orderByKey:布尔值; }; }' 不可分配给 'QueryFn' 类型的参数。对象文字只能指定已知属性,并且 'query' 不存在于 'QueryFn' 类型中。
package.json
"angularfire2": "^5.0.0-rc.3",
"firebase": "^4.5.1",
chat.service.ts
getMessages(): FirebaseListObservable<ChatMessage[]> {
return this.db.list('messages', {
query: { limitTolast : 25, orderByKey: true}
});
}
它不起作用,因为 AngularFire 需要一个函数作为第二个参数传递。
我认为您的示例是测试版中的正确方法。 (不是 100% 肯定)
您已经通过以下方式使用它:
// make sure to provide a child in the orderByChild call
getMessages(): Observable<ChatMessage[]> {
return this.db.list('/messages', ref => {
return ref.limitTolast(25).orderByKey(true)
});
}
在此处了解有关查询列表的更多信息:https://github.com/angular/angularfire2/blob/master/docs/rtdb/querying-lists.md
QueryFn 必须return一个firebase.database.Query,不能作废。 您可以像这样对查询进行编码,以便更清楚:
getMessages(): Observable<ChatMessage[]> {
return this.db.list('/messages', ref => {
let q = ref.limitTolast(25).orderByKey(true);
return q;
});
}
这将非常有效。我试过
getMessages(): Observable<ChatMessage[]> {
return this.db.list('/messages', ref =>
let q = ref.limitTolast(25).orderByKey(true);
return q;
);
}
有关查询的更多信息,请转到此 link:https://github.com/angular/angularfire2/blob/master/docs/rtdb/querying-lists.md
您可以试试这个代码:
return this.db.list('/categories', ref => ref.orderByChild('name')).valueChanges();
由于 Angular Fire 的更新,将 FirebaseListObservable 替换为 AngularFireList 并确保你 return firebase.database.Query 喜欢这样
getMessages(): AngularFireList<ChatMessage[]> {
return this.db.list('messages', ref => {
return ref.limitToLast(25).orderByKey();
});
}