реагировать на родной одаренный чат - не вижу сообщений, которые я отправляю, может видеть только сообщения, полученные от пользователя - PullRequest
1 голос
/ 09 апреля 2020

Я новичок, чтобы реагировать на собственный одаренный чат, и всякий раз, когда я отправляю сообщение и входю в систему под учетной записью другого пользователя, они видят мое сообщение, однако когда я снова захожу как сам, я не вижу сообщения, отправленные только теми получил как отобразить оба?

Как сделать так, чтобы я мог видеть как отправленные мной сообщения, так и полученные сообщения, а также создать прослушиватель для firebase firestore, чтобы проверить, получено ли новое сообщение ?

class MatchesChat extends Component {
    state = {
        messages: [],
      }

      componentDidMount(){

        this.getMessages()

      }

      getMessages = async () => {
        let items1 = []
        let items=[]

        try{
        const query = await db.collection('dogs').where('dogId', '==', this.props.dog.dogId).get()
        query.forEach(function(response) {
          items.push(response.data())
          })



         for(let i=0;i<items[0].messages.length;i++){
           if(items[0].messages[i].user._id===this.props.navigation.state.params.user.id){
             items1.push(items[0].messages[i])
           }
         }
          for(let i=0;i<items1.length;i++){
            items1[i].createdAt=items1[i].createdAt.toDate()
          }

          this.setState({
            messages: items1       
    })
  }
  catch{
    alert(e)
  }

  }

    onSend(messages = []){
        //this.props.dispatch(sendNotification(this.props.navigation.state.params.user.id, messages[0].user.name, messages[0].text))
        this.setState(previousState => ({
          messages: GiftedChat.append(previousState.messages, messages),
        }))

        let res = JSON.stringify(this.state.messages)
       console.log("gifted: "+res)


            try {
        console.log("inside try")

        db.collection('dogs').doc(this.props.dog.dogId).update({
          messages: firebase.firestore.FieldValue.arrayUnion(messages[0])

      })

      db.collection('dogs').doc(this.props.navigation.state.params.user.id).update({
        messages: firebase.firestore.FieldValue.arrayUnion(messages[0])

    })

    } 
            catch(e) {
              console.log("block dog error")
            alert(e)
            }




  }

    render(){

       let res = JSON.stringify(this.state.messages)
       //console.log("messy: "+res)
        return(
            <GiftedChat
            messages={this.state.messages}
            onSend={messages => this.onSend(messages)}
            user={{
              _id: this.props.dog.dogId,
              name: this.props.dog.dogname,
              avatar: this.props.dog.photo
            }}
          />
        )
        }  
}

const mapDispatchToProps = (dispatch) => {
    return bindActionCreators({getDog,getDogs}, dispatch)
  }

  const mapStateToProps = (state) => {
    return {

      dog: state.dog,
      cards: state.cards
    }
  }

  export default connect(mapStateToProps, mapDispatchToProps)(MatchesChat)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...