React Native Firestore 时间戳为空
Posted
技术标签:
【中文标题】React Native Firestore 时间戳为空【英文标题】:React Native firestore timestamp is null 【发布时间】:2019-06-21 02:58:05 【问题描述】:我遇到了一个奇怪的问题。所以我将 React Native 与 Firebase 结合使用。直到最近我都没有问题,但今天我遇到了时间戳变为空的错误。
这是它在我的 Firebase 控制台中的样子:
这是连接到同一个 Firebase Firestore 的 React.js Web 应用程序的外观:
但是,当我在我的 React Native 应用程序上进行远程调试时,这会被注销:
我真的没有任何相关的代码 sn-p 可以发布,因为在 Web 应用程序和 React Native 应用程序上,我只是从 Firestore 获取数据,然后将它们添加到我的 Redux 存储中。没有其他任何花哨或特别的东西。
【问题讨论】:
我遇到了同样的问题,使用react-native-firebase。它工作正常,然后我升级到版本 5.2.2,突然所有时间戳都为空。 【参考方案1】:我通过将我的 Firebase/Core
和 Firebase/Firestore
依赖项从 5.16 降级到 5.15(无论如何都是 React Native Firebase’s installation guide 推荐的版本)解决了这个问题。
以下是对我有用的步骤:
假设您使用的是 CocoaPods,请将您的 Podfile 更改为:
pod 'Firebase/Core', '~> 5.15.0'
pod 'Firebase/Firestore', '~> 5.15.0'
(同时确保更新任何其他 Firebase/*
pod 的版本。)
从您的 ios/
文件夹中,运行 pod install
在 XCode 中重新启动您的项目(或在命令行中使用 react-native run-ios
)
【讨论】:
这是对的。我在网上研究了一段时间后找到了解决方案,但忘了回来记录它。【参考方案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();
【讨论】:
以上是关于React Native Firestore 时间戳为空的主要内容,如果未能解决你的问题,请参考以下文章
Cloud Firestore 是不是支持 React Native
React Native Firebase Cloud Firestore
无法从 React-Native-Firebase(v6) Firestore 获取数据:未定义不是函数(靠近 '...this._firestore.native.collectionGet...'
React Native to firestore:Firestore(8.2.1):连接WebChannel传输错误
React Native重复超时将集合写入firestore@firebase/firestore:Firestore(8.4.2):连接WebChannel传输错误