Сопровождающий библиотеку реактив-нативный-firebase здесь.
... стремится максимально точно отразить официальный Firebase Web SDK.
Это небольшой отказ от ответственности, поскольку между ними есть некоторые различия, в основном в том, как определенные вещи должны быть реализованы с помощью React Native.
Например, enablePersistence
не существует на RNFB. Вместо этого постоянство включено по умолчанию и может быть отключено (или включено) с помощью settings()
.
Является ли response-native-firebase единственным вариантом? Я быстро прочитал об AsyncStorage, и это просто хранилище значений ключей. Учитывая простейшую вещь, которую я хочу сделать, это пролистать список документов пожарного депо, этот вид хранилища не подходит для этого в автономном режиме. Например, если бы я хотел сделать это с помощью AsyncStorage, мне пришлось бы поместить весь контент (возможно, сотни документов), который я получаю из бэкэнда firestore, сохранить их как одно строковое значение, получить их обратно, проанализировать, просмотреть их и т. Д. И написать собственную логику и методы для всего этого.
Это технически возможно, однако, как вы упоминали, в этом есть и недостатки. В Firestore, когда устройство отключается (что довольно часто встречается в приложениях), и вы пытаетесь выполнить чтение / запись, оно будет считывать / обновлять локальный кэш, что будет вызывать прослушиватели событий. Когда приложение переходит в режим онлайн, оно автоматически синхронизируется с сервером для вас.
Если бы я должен был использовать реактив-собственный-firebase, я просто позаботился об этом, просто включив автономное хранилище, и вам не нужно писать никакой собственной логики для использования автономного хранилища. Я предполагаю, что данные, которые сохранились для автономного использования, имеют ту же структуру, что и в базе данных firestore. Я чувствую, что если я использую что-либо, кроме реактив-native-firebase, мне придется обрабатывать всю пользовательскую логику для сохранения, чтения и перевода данных в автономный режим самостоятельно. Это правильно?
Это все для вас. Мы оборачиваемся вокруг родных Firebase SDK, поэтому ожидаем того же уровня согласованности, если вы разрабатывали нативное приложение для Android / iOS, если не используете React Native.
Самое большое беспокойство у меня вызывает количество рефакторинга кода, которое может потребоваться. У меня много строк кода и так много .get (). Then (), как строки, где я получаю и отображаю данные из firestore.
Вообще все одинаково, за исключением нескольких незначительных методов по причинам, упомянутым выше.
Итак, путь - это путь реакции-native-firebase? Будет ли это тяжелым испытанием для меня, пытаясь реорганизовать существующий код? Есть ли у вас подобный опыт? Буду признателен за любую помощь.
Я бы порекомендовал всем, кто разрабатывает с React Native & Firebase, использовать RNFB. Он предоставляет множество дополнительных функций, которые Web SDK не может обеспечить с помощью React Native. Помимо более громоздкой настройки и изменения импорта, он должен работать примерно так же.