Firestore 没有从反应本机日历中获取字符串
Posted
技术标签:
【中文标题】Firestore 没有从反应本机日历中获取字符串【英文标题】:Firestore not getting string from react native calendars 【发布时间】:2022-01-16 01:38:16 【问题描述】:您好,我正在尝试在我的 Firestore 数据库中插入数据,我注意到数据通过了,但如果我在控制台中手动添加它,则 id 的颜色不同,如图所示,颜色更深。
当我进行查询时,只会找到我手动插入的那些
在我的 Home.js 中,我通过 wix 从反应原生日历中获取日期字符串值
onDayPress=(day) =>
const dateString =day.dateString.toString()
setDateString(dateString); console.log(dateString)
// Initially selected day
然后在 App.js 中我使用 dateString 创建我的任务
const createTask = async (collection, data) =>
//adding data to a collection with automatic id
//const ref = await addDoc( collection(FSdb, FScollection ), data )
const ref = await setDoc(doc(FSdb, `usertasks/$user.uid/events/$data.dateString/items/$new Date().getTime()`), data)
//console.log( ref.id )
我不知道我做错了什么
【问题讨论】:
【参考方案1】:我尝试根据提供的屏幕截图和代码进行复制。 请参阅下面的我的复制:
问题发生在两种情况下:
删除包含子集合和子文档的集合或文档。
将集合和文档添加到空文档。如果您直接创建类似 /collection/document(1)/collection/document(2)` 的东西。您应该分两步创建它:
创建:/collection/document(1) 创建:/collection/document(1)/collection/document(2)UI 中显示的斜体 文档 ID 实际上不存在,但仍会显示,因此您仍可以导航到子集合。由于没有文档,因此文档本身不会出现在查询结果中。如果您希望任何文档存在,您必须编写一些代码来创建它并为其提供一些字段。如果您从未显式创建文档,则它永远不会存在。
您也可以参考此documentation 了解更多信息。
【讨论】:
谢谢。现在为什么不工作这个查询? let eventsOfTheDay = [] const eventKeys = Object.keys( eventData ) eventKeys.map( async (eventDate) => const events = await getDocs( FSdb,users/$user.uid/events/$eventDate/items
) events.forEach( (doc) => let event = doc.data() event.id = doc.id eventsOfTheDay.push( event ) ) 当我传递它时没有值?
嗨@Juan,这似乎是一个新问题。请发布一个新问题,以便其他人可以贡献答案。谢谢。
我正在尝试这个 await setDoc(doc(FSdb, usertasks/$user.uid
), data) await setDoc(doc(FSdb, usertasks/$user.uid/events/$data.dateString
), data) await setDoc(doc(FSdb, usertasks/$user.uid/events/$data.dateString/items/$new Date().getTime()
),数据)并且没有像将字段分配给项目和事件那样工作。不知道为什么。您是否介意向我展示正确的代码行以获得相同但仅在项目内的字段?谢谢以上是关于Firestore 没有从反应本机日历中获取字符串的主要内容,如果未能解决你的问题,请参考以下文章
如何在本机反应中保存对本机日历(Android和iOS)的条目?
渲染从 firebase firestore 获取的数组数据