質問編集履歴
1
思考錯誤したことの追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -18,7 +18,7 @@
|
|
18
18
|
|
19
19
|
**①ユーザーがイベントに参加意思を示す(eventの該当イベント内entry_usersの配列にユーザーのIDを追加する)**
|
20
20
|
|
21
|
-
**②entry_user
|
21
|
+
**②entry_userに自身のuIDが入ってるイベントを絞り出す**
|
22
22
|
|
23
23
|
**(indexOf(uID)でnilが返ってこないものを取得??)**
|
24
24
|
|
@@ -133,3 +133,55 @@
|
|
133
133
|
|
134
134
|
|
135
135
|
```
|
136
|
+
|
137
|
+
### 思考錯誤したこと(2019/12/13追記)
|
138
|
+
|
139
|
+
②について。
|
140
|
+
|
141
|
+
uIDはドキュメント”entry_user”内のフィールド”users”にArray型で格納されているためまず取得する方法を模索しました。
|
142
|
+
|
143
|
+
[公式ドキュメント](https://firebase.google.com/docs/firestore/query-data/get-data?authuser=1#get_a_document)を参考にArray型が取得できないか実践してみました。
|
144
|
+
|
145
|
+
まず上記リンクを参考に記述、取得したDictionary型から”users”をdataDescriptionにセットするよう書き換えました。
|
146
|
+
|
147
|
+
```Swift
|
148
|
+
|
149
|
+
let dataDescription = document.data()!["users"]!
|
150
|
+
|
151
|
+
```
|
152
|
+
|
153
|
+
するとdataDescriptionをprintすると下記が表示されました。(uIDは仮でA,B,Cの3つを用意しました)
|
154
|
+
|
155
|
+
```
|
156
|
+
|
157
|
+
(
|
158
|
+
|
159
|
+
A,
|
160
|
+
|
161
|
+
B,
|
162
|
+
|
163
|
+
C
|
164
|
+
|
165
|
+
)
|
166
|
+
|
167
|
+
```
|
168
|
+
|
169
|
+
自分の知ってるArray型は[]で囲まれているもののみだったのでtype(of: dataDescription)で型を調べたところ"__NSArrayM"と表示されました。
|
170
|
+
|
171
|
+
調べましたが正直いい意味がわからなくArray型の一種ということしか理解できなかったので次はArray型にキャストしてみました。
|
172
|
+
|
173
|
+
```Swift
|
174
|
+
|
175
|
+
let dataDescription = document.data()!["users"]! as! Array<String>
|
176
|
+
|
177
|
+
```
|
178
|
+
|
179
|
+
そして再度printすると無事配列を読み込むことができました。
|
180
|
+
|
181
|
+
```
|
182
|
+
|
183
|
+
[A,B,C]
|
184
|
+
|
185
|
+
```
|
186
|
+
|
187
|
+
とりあえず②の初期の段階ですがこれから各イベントのentry_userにアプローチしていくにあたり上記の方法でいいのかがわかりません。
|