【发布时间】:2021-08-05 10:31:36
【问题描述】:
我正在尝试获取用户加入的日期,该日期存在于 firebase 文档中:
我有这个功能可以查询登录用户并获取数据:
import { auth, firestore } from '../../firebase/fire';
const [userData, setUserData] = useState({});
const user = auth.currentUser;
const GetUserData = async() =>{
const response = firestore.collection('users').doc(user.uid);
const observer = response.onSnapshot(docSnapshot => {
if( docSnapshot.exists ) {
setUserData(docSnapshot.data());
}
}, err => {
console.log(`Encountered error: ${err}`);
});
const unsub = firestore.collection('users').onSnapshot(() => {
setUserData({});
});
unsub();
}
useEffect(() => {
GetUserData();
}, [])
这让我可以设置类似const joined = userData.joined;
控制台记录这给了我
"nanoseconds": 0,
"seconds": 1489615200,
}
现在可以通过.toDate() 将其转换为正常日期,但似乎不起作用。
我尝试了什么 像这样使用 toDate():
const joined = userData.joined.toDate();
console.log(joined);
我遇到了错误
TypeError: undefined is not an object (evaluating 'joined.toDate')
我的目的是让那个日期找出现在和那时之间的月差并显示出来。
【问题讨论】:
-
“似乎不起作用” 为什么不呢?您能否编辑您的问题以显示您尝试了什么、预期会发生什么以及会发生什么?
-
添加了我尝试过的内容 + 我收到的错误。
-
当你在上面调用
toDate()时,userData.joined似乎没有值。您在哪里(或更准确地说:何时)运行该代码?您能否编辑您的问题以显示(当我们运行它时)重现问题的单个代码片段?
标签: javascript firebase react-native google-cloud-firestore