回答編集履歴

2

実際つくって解決したので追記

2020/02/23 12:37

投稿

Pltcpx
Pltcpx

スコア7

test CHANGED
@@ -1,42 +1,10 @@
1
- 積極的解決になってない気もますが、
1
+ [Stackoverflow](https://stackoverflow.com/questions/55600137/task-list-with-re-ordering-feature-using-firebase-firestore)のほうに、似たような質問があり、以下のよう提案がありまた。
2
2
 
3
- tasksをcollectiondocumentしてあつかずに
3
+ これの、1.ある程度の間隔のあるindexでやるとわりとすんなり作れたのでこれで解決しました。
4
4
 
5
- boardドキュメントの配列フィールドとしてtaskを管理するのが、順番とデータが一致して、つ更新回数も少なく、素直な気がしてきました。
5
+ アップデートするドキュメントも1つだけでいいでよです
6
6
 
7
-
8
-
9
- ```
10
-
11
- Boards(Collection)
12
-
13
- - Board(Document)
14
-
15
- - フィールド
16
-
17
- - tasks:[
18
-
19
- {taskId:"uuid", data:"myToDo"},
7
+ 順番を入れ替え続けているとすごい小数点になってしまうので、どこかでリセット処理を入れる必要があるかと思います。
20
-
21
- {taskId:"uuid", data:"myToDo"},
22
-
23
- {taskId:"uuid", data:"myToDo"}
24
-
25
- ]
26
-
27
- ```
28
-
29
-
30
-
31
- 作りかえてみます。
32
-
33
-
34
-
35
- ---
36
-
37
-
38
-
39
- あと[Stackoverflow](https://stackoverflow.com/questions/55600137/task-list-with-re-ordering-feature-using-firebase-firestore)のほうに、似たような質問があったのでそちらも参考にしてみます。
40
8
 
41
9
 
42
10
 
@@ -58,7 +26,7 @@
58
26
 
59
27
 
60
28
 
61
- 移動
29
+ 前後のindexの中間値を取る。
62
30
 
63
31
  ```text
64
32
 
@@ -69,6 +37,8 @@
69
37
  item3 order:300
70
38
 
71
39
  ```
40
+
41
+
72
42
 
73
43
 
74
44
 

1

別の方法について記載

2020/02/23 12:37

投稿

Pltcpx
Pltcpx

スコア7

test CHANGED
@@ -30,4 +30,80 @@
30
30
 
31
31
  作りかえてみます。
32
32
 
33
+
34
+
35
+ ---
36
+
37
+
38
+
39
+ あと[Stackoverflow](https://stackoverflow.com/questions/55600137/task-list-with-re-ordering-feature-using-firebase-firestore)のほうに、似たような質問があったのでそちらも参考にしてみます。
40
+
41
+
42
+
43
+ モト
44
+
45
+ ```text
46
+
33
- どうもありがとうございました。
47
+ item1 order:100
48
+
49
+ item2 order:200
50
+
51
+ item3 order:300
52
+
53
+ ```
54
+
55
+
56
+
57
+ ## 1.ある程度間隔のあるindexを使う
58
+
59
+
60
+
61
+ 移動
62
+
63
+ ```text
64
+
65
+ item2 order:200
66
+
67
+ item1 order:250 <- update
68
+
69
+ item3 order:300
70
+
71
+ ```
72
+
73
+
74
+
75
+ ## 2.前後順データをもつ
76
+
77
+
78
+
79
+ ```text
80
+
81
+ item1 prev:item2 next:item3 <- update
82
+
83
+ item2 prev:null next:item1 <- update
84
+
85
+ item3 prev:item1 next:null <- update
86
+
87
+ ```
88
+
89
+
90
+
91
+ ## 3.順序管理配列をもつ
92
+
93
+
94
+
95
+ ```text
96
+
97
+ item1 id:1
98
+
99
+ item2 id:2
100
+
101
+ item3 id:3
102
+
103
+
104
+
105
+ order:[2,1,3]
106
+
107
+
108
+
109
+ ```