javascript - 反应原生天才聊天 - 看不到我发送的消息只能看到从用户收到的消息
问题描述
我是新手,无法对本地有天赋的聊天做出反应,每当我发送消息并以其他用户身份登录时,他们都可以看到我的消息,但是当我以自己的身份重新登录时,我看不到消息我只发送了收到的消息怎么办我两个都显示?
我怎样才能做到这一点,以便我可以看到我发送的消息和我收到的消息,我是否还为 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)
解决方案
推荐阅读
- json - 如何在 NiFi 中使用 EvaluateJsonPath 处理器拆分 json
- prolog - 使用最佳优先搜索查找路线
- python-3.x - Python:如何获取匹配名称的相应年龄和余额?
- python - 功能不会超过不和谐机器人中的 if 语句
- mysql - 比较 count(*) 和 select 以获得一个结果
- java - GraalVM native-image Java i18n 语言环境问题
- node.js - 为firebase auth用户设置周期性时间的密码重置限制
- breadth-first-search - 使用 Google Foobar 问题请求反测试用例 - 准备兔子逃生
- git - 主分支的卡夫卡命名为什么“主干”不是“主控”
- java - 如何总结用户在arraylist中的输入?