質問編集履歴
2
下部にTask.swiftを追加させていただきました。ご指摘ありがとうございます!
title
CHANGED
File without changes
|
body
CHANGED
@@ -25,6 +25,8 @@
|
|
25
25
|
|
26
26
|
### 該当のソースコード
|
27
27
|
|
28
|
+
FirestoreTaskRepository.swift
|
29
|
+
|
28
30
|
```Swift4.0
|
29
31
|
import Foundation
|
30
32
|
import FirebaseFirestore
|
@@ -90,6 +92,74 @@
|
|
90
92
|
|
91
93
|
```
|
92
94
|
|
95
|
+
Task.swift
|
96
|
+
|
97
|
+
```Swift4.0
|
98
|
+
|
99
|
+
import UIKit
|
100
|
+
|
101
|
+
class Task: Codable {
|
102
|
+
var id: String?
|
103
|
+
var title: String?
|
104
|
+
var note: String?
|
105
|
+
var latitude: Double?
|
106
|
+
var longitude: Double?
|
107
|
+
|
108
|
+
enum CodingKeys: String, CodingKey {
|
109
|
+
case title
|
110
|
+
case note
|
111
|
+
case latitude
|
112
|
+
case longitude
|
113
|
+
}
|
114
|
+
|
115
|
+
init(title _title: String) {
|
116
|
+
self.title = _title
|
117
|
+
}
|
118
|
+
|
119
|
+
init(data: [String: Any]) {
|
120
|
+
if let title = data["title"] as? String {
|
121
|
+
self.title = title
|
122
|
+
}
|
123
|
+
if let note = data["note"] as? String {
|
124
|
+
self.note = note
|
125
|
+
}
|
126
|
+
if let latitude = data["latitude"] as? Double {
|
127
|
+
self.latitude = latitude
|
128
|
+
}
|
129
|
+
if let longitude = data["longitude"] as? Double {
|
130
|
+
self.longitude = longitude
|
131
|
+
}
|
132
|
+
}
|
133
|
+
|
134
|
+
required init(from decoder: Decoder) throws {
|
135
|
+
let container = try decoder.container(keyedBy: CodingKeys.self)
|
136
|
+
self.title = try container.decode(String.self, forKey: .title)
|
137
|
+
self.note = try container.decode(String.self, forKey: .note)
|
138
|
+
self.latitude = try container.decode(Double.self, forKey: .latitude)
|
139
|
+
self.longitude = try container.decode(Double.self, forKey: .longitude)
|
140
|
+
}
|
141
|
+
func encode(to encoder: Encoder) throws {
|
142
|
+
var container = encoder.container(keyedBy: CodingKeys.self)
|
143
|
+
try container.encode(title, forKey: .title)
|
144
|
+
try container.encode(note, forKey: .note)
|
145
|
+
try container.encode(latitude, forKey: .latitude)
|
146
|
+
try container.encode(longitude, forKey: .longitude)
|
147
|
+
}
|
148
|
+
|
149
|
+
func toData() -> [String: Any] {
|
150
|
+
return [
|
151
|
+
"title": self.title!,
|
152
|
+
"note": self.note!,
|
153
|
+
"latitude": self.latitude!,
|
154
|
+
"longitude": self.longitude!
|
155
|
+
]
|
156
|
+
}
|
157
|
+
|
158
|
+
}
|
159
|
+
|
160
|
+
|
161
|
+
```
|
162
|
+
|
93
163
|
### 試したこと
|
94
164
|
|
95
165
|
他のファイル情報が必要でしたらお教えいただけると幸いです。
|
1
画像に注釈を入れました(画像が大きくて申し訳ございません…)
title
CHANGED
File without changes
|
body
CHANGED
@@ -11,9 +11,16 @@
|
|
11
11
|
Firestoreで取り組んでいる今回は配列に入ったタスクを1件ずつFirestoreに保存しています。
|
12
12
|
上書き時はIDを使って上書きしていますが、コードをよく読むと読み出しているときにIDをタスクに保持するようになっていません。この解消方法をご教授いただきたいです。
|
13
13
|
|
14
|
+
修正、削除前です
|
14
15
|

|
16
|
+
|
17
|
+
削除後も消えておりません
|
15
18
|

|
19
|
+
|
20
|
+
修正しようとすると…
|
16
21
|

|
22
|
+
|
23
|
+
なぜか増えます
|
17
24
|

|
18
25
|
|
19
26
|
### 該当のソースコード
|