我在使用云firestore时遇到了react-native-gifted-chat的问题。我无法获取以前的消息和附加到有天赋的聊天。请给我看一下它是如何与云存储一起使用的代码。谢谢
发布于 2019-11-11 19:00:30
我已经能够使用与GitHib repo类似的方法在我的应用程序上实现此功能
我的代码调用componentDidMount中的loadMessages函数,该函数使用onSnapshot来跟踪我的消息或聊天集合中的任何更改。如果发生更改,它将使用回调函数将新消息附加到GiftedChat。
下面是我的代码:
async componentDidMount() {
this.loadMessages(message => {
this.setState(previousState => {
return {
messages: GiftedChat.append(previousState.messages, message)
};
});
});
}async loadMessages(callback) {
var that = this;
var recipientId = this.props.navigation.getParam("recipientId");
var chatId = this.generateChatID(recipientId);
this.setState({ chatId });
firebase
.firestore()
.collection("Message")
.doc(chatId)
.collection("Chats")
.orderBy("createdAt", "asc")
.onSnapshot(function(doc) {
doc.docChanges().forEach(chat => {
var id = chat.doc.id;
chat = chat.doc.data();
const newMessage = {
_id: id,
text: chat.text,
createdAt: chat.createdAt.toDate(),
user: {
_id: chat.user._id,
name: chat.user.name,
avatar: chat.avatar
}
};
callback(newMessage);
});
});
}如果你有任何问题,Lmk!
https://stackoverflow.com/questions/58425843
复制相似问题