首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将react-native-gifted chat与云firestore一起使用?

如何将react-native-gifted chat与云firestore一起使用?
EN

Stack Overflow用户
提问于 2019-10-17 13:59:28
回答 1查看 1.6K关注 0票数 0

我在使用云firestore时遇到了react-native-gifted-chat的问题。我无法获取以前的消息和附加到有天赋的聊天。请给我看一下它是如何与云存储一起使用的代码。谢谢

EN

回答 1

Stack Overflow用户

发布于 2019-11-11 19:00:30

我已经能够使用与GitHib repo类似的方法在我的应用程序上实现此功能

我的代码调用componentDidMount中的loadMessages函数,该函数使用onSnapshot来跟踪我的消息或聊天集合中的任何更改。如果发生更改,它将使用回调函数将新消息附加到GiftedChat。

下面是我的代码:

代码语言:javascript
复制
async componentDidMount() {    
    this.loadMessages(message => {
      this.setState(previousState => {
        return {
          messages: GiftedChat.append(previousState.messages, message)
        };
      });
    });

  }
代码语言:javascript
复制
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!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58425843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档