如果未打开react-native调试器,则Firebase将变得缓慢

时间:2019-04-13 12:03:02

标签: javascript firebase react-native google-cloud-firestore react-native-firebase

我有一个基本的聊天应用程序,其中仅包含对话和消息。用户可以发送一条消息,其他人可以接收它。在模拟器上运行良好,但是当我将应用程序上载到设备(iPhone SE)时,它变得很迟钝。

我发现了一些东西,如果远程调试器是打开的应用程序,则工作非常顺利,否则它将像second video一样开始工作。

该问题与本机远程调试器有什么关系?

我做了什么?

我尝试配置脱机数据,并设法进行设置。但这没什么区别。

视频

My app on the simulator My app on my device

发送消息代码

const msg = {
    name,
    text,
    createdAt: firebase.firestore.FieldValue.serverTimestamp(),
    senderId,
    receiverId,
  };
  const conversationId = createOneToOneMessageId(senderId, receiverId);
  const rootRef = firebase.firestore();
  const batch = rootRef.batch();

  const newMessageRef = rootRef
    .collection('conversations')
    .doc(conversationId)
    .collection('messages')
    .doc();

  batch.set(newMessageRef, msg);

  const updateSenderConversationRef = rootRef
    .collection('user-conversations')
    .doc(senderId)
    .collection('conversations')
    .doc(conversationId);

  batch.update(updateSenderConversationRef, {
    lastMessage: msg.text,
    lastMessageDate: msg.createdAt,
  });

  const updateReceiverConversationRef = rootRef
    .collection('user-conversations')
    .doc(receiverId)
    .collection('conversations')
    .doc(conversationId);

  batch.update(updateReceiverConversationRef, {
    lastMessage: msg.text,
    lastMessageDate: msg.createdAt,
  });

  batch.commit();

问题

  • 是否由于批写操作而导致“延迟”?
  • 我的设备与Cloud Firestore模拟器之间是否有区别?
  • 显然,我该如何解决这个问题?

0 个答案:

没有答案