2017-10-17 104 views
0

類型'{query:{limitTolast:number; orderByKey:boolean; }; }'不能分配給類型爲'QueryFn'的參數。對象文字只能指定已知屬性,'QueryFn'類型中不存在'查詢'。angularfire2

的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} 
    }); 
    } 
+0

嗨肯迪,感謝您的編輯。 – Rijo

+0

我也面臨同樣的問題。運氣好的話? –

+0

我也遇到同樣的問題 – Francesco

回答

1

它不工作,因爲AngularFire預期的功能,作爲第二個參數傳遞。

我認爲你的例子是在beta版期間的正確方法。 (不是100%肯定)

你必須使用它的方式如下:

// make sure to provide a child in the orderByChild call 
getMessages(): Observable<ChatMessage[]> { 
    return this.db.list('/messages', ref => { 
     ref.limitTolast(25).orderByKey(true) 
    }); 
    } 

詳細瞭解這裏查詢列表:https://github.com/angular/angularfire2/blob/master/docs/rtdb/querying-lists.md

+0

Hi Orlandster,FirebaseListObservable在AngularFire 5.0中被刪除。所以我不能導入FirebaseListObservable。 – Rijo

+0

@Rijo謝謝你的提示。我沒有意識到這一點。我接受了評論,它是否像這樣工作? – Orlandster

1

QueryFn必須返回一個firebase.database.Query,而不是無效的。 你可以編碼查詢這樣的,更清楚:

getMessages(): Observable<ChatMessage[]> { 
    return this.db.list('/messages', ref => { 
     let q = ref.limitTolast(25).orderByKey(true); 
     return q; 
    }); 
    }