我不知道如何在Firestore中实现这种数据结构。
我有这样的结构:
Firestore-root
|
--- liturgia (collection)
| |
| --- lh (documents)
| |
| --- oficio (collection)
| |
| --- 03070101 (documents)
| |
| --- himno: "Today himno for today oficio"
| |
| --- read: "Today read for today oficio"
|
| --- 03070102 (documents)
| |
| --- himno: "Today himno for today oficio"
| |
| --- read: "Today read for today oficio"
|
| --- 09070325 (documents)
| |
| --- himno: "Today himno for today oficio"
| |
| --- read: "Today read for today oficio"
|
| --- laudes (collection)
| |
| --- 03070101 (documents)
| |
| --- himno: "Today himno for today laudes"
| |
| --- read: "Today read for today laudes"
|
| --- 03070102 (documents)
| |
| --- himno: "Today himno for today laudes"
| |
| --- read: "Today read for today laudes"
|
| --- 09070325 (documents)
| |
| --- himno: "Today himno for today laudes"
| |
| --- read: "Today read for today laudes"
在oficio
或laudes
中,有文档具有固定的内容,该内容永不更改,我需要根据日期使用该内容。
例如:
我有任何日期,在这个日期,需要一个完整的内容。例如,当我需要显示oficio
(或laudes
)的今天内容时:
2019-03-25
,我需要09070325
的内容对于2019-03-26
,我需要03070102
的内容
...
对于2020-03-25
,我需要09070325
的内容
对于2020-03-26
,我需要03070103
的内容
...
对于2021-03-25
,我需要03070101
的内容
我想到了一种根据日期将固定内容关联起来的结构,但是我不知道该怎么做。
在我的应用程序中,将采用当前日期,并且必须基于此数据找到oficio
,laudes
等的固定内容。
例如,在2019-03-25
和2020-03-25
中需要内容09070325
,但是在2021-03-25
中需要内容03070101
:
20190325
oficio : 09070325
laudes : 09070325
20190326
oficio : 03070102
laudes : 03070102
20200325
oficio : 03070101
laudes : 03070101
20210325
oficio : 03070101
laudes : 03070101
如何将我的数据结构组织为:
答案 0 :(得分:1)
我能想到的最简单的解决方案是为每个文档使用String类型的private async void StartButton_Click(object sender, EventArgs e)
{
TcpListener listener = new TcpListener(IPAddress.Any, int.Parse(ServerPorttextBox.Text));
listener.Start();
client = await listener.AcceptTcpClientAsync();
STR = new StreamReader(client.GetStream());
STW = new StreamWriter(client.GetStream());
STW.AutoFlush = true;
backgroundWorker1.RunWorkerAsync();
backgroundWorker2.WorkerSupportsCancellation = true;
}
属性,并稍微简化您的结构。因此可能的结构可能是:
date
要获取今天的文档,只需使用以下查询:
Firestore-root
|
--- liturgia (collection)
|
--- 03070101 (document)
|
--- himno: "Today himno for today oficio"
|
--- read: "Today read for today oficio"
|
--- date: "20190325"
|
--- length: "1h"
今天是FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
CollectionReference liturgiaRef = rootRef.collection("liturgia");
Query query = liturgiaRef.whereEqualTo("date", today);
。就是这样!
编辑:
根据您的评论,而不是将数据存储为20190325
,而仅将其存储为date: "20190325"
。这意味着无论年份是多少,都可以根据月份和日期进行查询。在这种情况下,今天只有date: "0325"
。这样,它将在一年中都有效。
编辑2:
根据OP的评论,我们同意一种可能的解决方案是创建一个将日期和内容相关联的日历节点。