首页 > 解决方案 > 反应本机firebase +iOS +异常'不能使用queryEndingAtValue:

问题描述

我在 iOS 中执行以下代码时遇到异常“无法使用 queryEndingAtValue:”。虽然相同的代码适用于android

const messagesRef = firebase
  .database()
  .ref()
  .child('messages');
let activeChatListener;
function fetchChatMessages(dispatch, chat_code, page, user_data, oldest_message) {
  currMessagesRef = messagesRef.child(chat_code);
  if (page == 1) {
    activeChatListener = currMessagesRef.orderByKey().limitToLast(1);
    dispatch(clearMessages());
    activeChatListener.on('child_added', data => {
      fetchUserData(dispatch, data.val().user, user_data);
      dispatch(appendMessage(createFirebaseMessage(data)));
    });
  } else if (page >= 2) {
    let old_messages = [];
    currMessagesRef
      .orderByKey()
      .endAt(oldest_message)
      .limitToLast(CHAT_PER_PAGE)
      .once('value', snapshot => {
        let old_messages = [];
        snapshot.forEach(function(data) {
          old_messages.unshift(createFirebaseMessage(data));
        });
        dispatch(prependMessages(old_messages.slice(1, old_messages.length)));
      });
  }

标签: iosfirebasereact-native-android

解决方案


我已经修好了。在.endAt(oldest_message)这里oldest_message 正在接收null。我在执行及其工作之前检查了 null 。


推荐阅读