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

質問編集履歴

7

変更

2018/07/07 14:00

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -85,4 +85,8 @@
85
85
  ```
86
86
 
87
87
  数日調べていますが、分からない為質問致します。
88
- よろしくお願いします。
88
+ よろしくお願いします。
89
+
90
+ //追記
91
+
92
+ reloadDataもできています。

6

変更

2018/07/07 14:00

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
File without changes

5

変更

2018/07/07 13:50

投稿

退会済みユーザー
title CHANGED
@@ -1,1 +1,1 @@
1
- ListenerRegistrationする方法 Firestore
1
+ セルにdictionaryの値を渡し、表示したい。 Firestore
body CHANGED
@@ -2,39 +2,87 @@
2
2
 
3
3
 
4
4
  ### 実現したいこと
5
+ UITableViewControllerのcellForRowAt内のcell.textLabel?.textの値として、
5
- 既にFirestoreへSetDataしているデ指定して取得し値として扱いたいです
6
+ ド①のdictionary内のvalue持たせセルに表示させたい。
6
7
 
7
- UITableViewControllerで下記コード(viewWillAppear)を実行し、
8
- カスタムセルである(UITableViewCell)へ値を渡したです。
8
+ ### 分からな
9
9
 
10
+ 下記コード①をFirestoreのSetDataで保存しています。
11
+ ここのdictionary内のuserNameのvalueを、
12
+ UITableViewControllerのセルに表示したいです。
13
+
14
+
10
15
  ```ここに言語を入力
11
-
12
- //UITableViewController内です
13
16
 
17
+ コード① Prof1です
18
+
19
+ import Foundation
20
+ import Firebase
21
+
22
+
23
+ protocol DocumentSerializable2 {
24
+
25
+ init?(dictionary:[String:Any])
26
+ }
27
+
28
+
29
+ struct Prof1 {
30
+ var userName :Any
31
+
14
- var dataListener : ListenerRegistration!
32
+ var dictionary:[String:Any] {
15
-
16
- override func viewWillAppear(_ animated: Bool) {
17
- super.viewWillAppear(animated)
33
+ return [
18
34
 
19
- let userRef = db.collection("users").document("user")
35
+ "userName" : (userName as AnyObject).text ?? ""
36
+ ]}
37
+ }
20
38
 
21
- //
39
+
22
- dataListener = userRef.addSnapshotListener { (docSnapshot, error) in
40
+
23
- guard let docSnapshot = docSnapshot, docSnapshot.exists else { return }
24
- let data = docSnapshot.data()
41
+ extension Prof1 : DocumentSerializable2 {
42
+ init?(dictionary: [String:Any]) {
43
+
25
- let name = data!["userName"] as? String ?? ""
44
+ guard let userName = dictionary["userName"] as? Any
26
-
45
+ else {return nil}
46
+
27
- HogeCell().HugaLabel.text = name
47
+ self.init(userName: userName)
28
- }
48
+ }
29
- }
49
+ }
50
+
51
+
30
52
  ```
31
- ### 試したこと
32
- SetDataを取得するのにListenerRegistrationが望ましいかと思いました。
33
- フィールドはString:Anyで、"userName":""という形で保存しています。
34
53
 
35
- valueの""内には既に"HogeHuga"という形値があり、この値を扱いたいのですが、セルにく渡せません
54
+ 下記コード②hoge.contentとhoge.timeStampはセルに表示できてい
36
55
 
37
- 数日調べてすが分からない為見て頂けると助かります。
56
+ この様に、コード①のuserNameも セルに表示したのですが、
57
+ 値のイニシャライズが分かりません。(let profff = Prof1()の書き方自体間違ってるかもしれませんが...)
38
58
 
59
+
39
- ・・__追記__
60
+ ```ここに言語を入力
61
+
62
+ コード② UITableViewControllerです
63
+
64
+ //省略してます
65
+
66
+
67
+ override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
68
+ let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
69
+
70
+
71
+ let hoge = hogeArray[hogeArray.count - indexPath.row - 1]
72
+
73
+      //⚠️ここで値を渡したいですのですが、イニシャライズが分かりません。
74
+      let profff = Prof1()
75
+
76
+
77
+ cell.textLabel?.text = "(profff.userName) (hoge.content)"
40
- valueの "HogeHuga"のみを値にしたいです。
78
+ cell.detailTextLabel?.text = "(hoge.timeStamp)"
79
+
80
+ return cell
81
+ }
82
+
83
+ //省略してます
84
+
85
+ ```
86
+
87
+ 数日調べていますが、分からない為質問致します。
88
+ よろしくお願いします。

4

変更

2018/07/07 13:48

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
File without changes

3

変更

2018/07/07 06:10

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -34,4 +34,7 @@
34
34
 
35
35
  valueの""内には既に"HogeHuga"という形で値があり、この値を扱いたいのですが、セルにうまく渡せません。
36
36
 
37
- 数日調べていますが分からない為、見て頂けると助かります。
37
+ 数日調べていますが分からない為、見て頂けると助かります。
38
+
39
+ ・・__追記__
40
+ valueの "HogeHuga"のみを値にしたいです。

2

変更

2018/07/06 15:23

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
File without changes

1

変更

2018/07/06 13:21

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
File without changes