teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

add

2018/06/11 14:05

投稿

xenbeat
xenbeat

スコア4258

answer CHANGED
@@ -29,7 +29,7 @@
29
29
 
30
30
  少しでも参考になれば幸いです。
31
31
 
32
- ##### 追記
32
+ ##### 追記1
33
33
 
34
34
  Structでもうまくいかないようなのでdictionaryで試してみてください。
35
35
  ``` Swift
@@ -46,4 +46,10 @@
46
46
  "singleWord": singleWord!,
47
47
  "createDate": self.date
48
48
  ]
49
- ```
49
+ ```
50
+
51
+ ##### 追記2
52
+
53
+ dictionaryで問題なくいけるはずです。
54
+ 今更ですがAPI仕様を確認しました。
55
+ https://firebase.google.com/docs/reference/swift/firebasefirestore/api/reference/Classes/CollectionReference?hl=ja#/c:objc(cs)FIRCollectionReference(im)addDocumentWithData:

1

add

2018/06/11 14:05

投稿

xenbeat
xenbeat

スコア4258

answer CHANGED
@@ -4,15 +4,15 @@
4
4
  以下のようなStructを自分で定義して
5
5
  ``` Swift
6
6
  struct User {
7
- var userID: String
8
- var name: String
7
+ var uid: String
8
+ var displayName: String
9
9
  var photoURL: URL
10
10
  }
11
11
  ```
12
12
  それをそのまま突っ込んだらうまくいかないですかね?
13
13
  ``` Swift
14
- let userStruct = User(userID: currentUser.uid,
14
+ let userStruct = User(uid: currentUser.uid,
15
- name: currentUser.displayName!,
15
+ displayName: currentUser.displayName!,
16
16
  photoURL: currentUser.photoURL!)
17
17
 
18
18
 
@@ -27,4 +27,23 @@
27
27
 
28
28
  SwiftでFirestoreを扱ったことがないので、はずすかもしれないですが、要は```Auth.auth().currentUser```をそのまま突っ込もうとせずに、```Struct```を突っ込めばうまくいくんじゃないかってことが言いたいです。
29
29
 
30
- 少しでも参考になれば幸いです。
30
+ 少しでも参考になれば幸いです。
31
+
32
+ ##### 追記
33
+
34
+ Structでもうまくいかないようなのでdictionaryで試してみてください。
35
+ ``` Swift
36
+ let user: [String: Any] = [
37
+ "uid": currentUser.uid,
38
+ "displayName": currentUser.displayName!,
39
+ "photoURL": currentUser.photoURL!,
40
+ ]
41
+
42
+ let post: [String: Any] = [
43
+ "category": category!,
44
+ "userInfo": user,
45
+ "placeName": placeName!,
46
+ "singleWord": singleWord!,
47
+ "createDate": self.date
48
+ ]
49
+ ```