Временная метка React Native firestore равна нулю

Я столкнулся со странной проблемой. Поэтому я использую React Native в сочетании с Firebase. До недавнего времени у меня не было проблем, но сегодня у меня есть эта ошибка, когда временные метки становятся нулевыми.

Вот как это выглядит в моей консоли Firebase:

Временная метка React Native firestore равна нулю

Вот как это выглядит в веб-приложении React.js, подключенном к тому же Firebase Firestore:

Временная метка React Native firestore равна нулю

Однако, когда я выполняю удаленную отладку на своем Реагировать на родное приложение, вот что выходит из системы:

Временная метка React Native firestore равна нулю

На самом деле у меня нет подходящего фрагмента кода для публикации, потому что как в веб-приложении, так и в приложении React Native я просто получаю данные из Firestore, а затем просто добавляю их в свой магазин Redux. Ничего сверхъестественного или особенного с ним не делается.

🤔 А знаете ли вы, что...
С React можно использовать JSX (JavaScript XML) для описания компонентов.


2
1 080
2

Ответы:

Вы недавно обновляли свой firebase SDK? Firebase Firestore недавно изменился, так что Firestore считывает объекты Firebase Timestamp вместо объектов системной даты.

Из предупреждения Firebase SDK

/** So you will also
need to update code expecting a Date to instead expect a Timestamp. For example:*/

  // Old:
  const date = snapshot.get('created_at');
  // New:
  const timestamp = snapshot.get('created_at');
  const date = timestamp.toDate();

Решено

Я решил эту проблему, понизив мои зависимости Firebase/Core и Firebase/Firestore с 5.16 до 5.15 (в любом случае это версия, рекомендованная Руководство по установке React Native Firebase).

Вот шаги, которые сработали для меня:

  1. Предполагая, что вы используете CocoaPods, измените свой Podfile на:

    pod 'Firebase/Core', '~> 5.15.0'
    pod 'Firebase/Firestore', '~> 5.15.0'
    

    (Также обязательно обновите версии любых других подов Firebase/*.)

  2. Из папки ios/ запустите pod install

  3. Перезапустите ваш проект в XCode (или в командной строке с react-native run-ios)