类型'{query:{limitToLast:number; orderByKey:boolean; }; ''不能赋值给'FirebaseListFactoryOpts'类型的参数

时间:2018-02-06 20:44:52

标签: angularjs angular typescript firebase angularfire

    user: any;
     chatMessages: FirebaseListObservable<ChatMessage[]>;
     chatMessage: ChatMessage;
     userName: Observable<string>;
         constructor(
        public db: AngularFireDatabase,
        public afAuth: AngularFireAuth,
      ) { 
        this.afAuth.authState.subscribe(auth => {
          if (auth !== undefined && auth !== null){
            this.user = auth;
          }
        });
      }
    sendMessage(msg: string){
    const timestamp = this.getTimeStamp();
    const email = this.user.email;
    this.chatMessages = this.getMessages();
    this.chatMessages.push({
      message: msg,
      timeSent: timestamp,
      userName: this.userName,
      email: email});
  }

  getMessages(): FirebaseListObservable<ChatMessage[]>{
    return this.db.list('/messages', {
      query: {
        limitToLast: 25,
        orderByKey: true
      }
    });
  }

我正在使用angular和firebase创建一个网络聊天应用程序,然后我收到此错误,查询不是兼容类型的FireBaseListFactoryOpts。 如果有人可以,请提供帮助。enter image description here

2 个答案:

答案 0 :(得分:1)

getMessages(): AngularFireList<ChatMessage[]> {
return this.db.list('messages',ref => ref.orderByKey().limitToLast(25));
}

使用它而不是现在这将起作用,因为FireBaseListObservable被AngularFirelist替换。

答案 1 :(得分:0)

检查您的类型好友,您正在将查询结果分配给不同类型的Firebase数据类型,这将无法正常工作调试具有正确数据类型的代码,并在Google上检查是否由于版本而对该代码进行了更改更改。 由于Web开发技术中版本的不断更改,这种问题很常见。 祝你好运