初めまして、ヒロポメと申します、Swift初心者です。
世界を変える次世代SNSを作っていますw
Firebase Storageにプロフィール画像をアップロードすることに成功しましたが、
現在ログインしているユーザーが設定したプロフィール画像をFirebase Storageから取得して、
プロフィール画像として表示するステップでつまづいてしまいました。
ビルドは問題なくできます。
以下コードになります、大変お手数ですが、アドバイスをいただければ大変幸いです。
よろしくお願いいたします。
Swift
1 2 3 4 5//ChatVCクラス 6 7 8@IBOutlet var imageTest: UIImageView! 9 10 11//以下、override func viewDidLoad内 12 13//Firebaseから現在ログインしているユーザーのidを取得 14let uid = Auth.auth().currentUser?.uid 15 16//Firebase Databaseから現在ログインしているユーザーの名前、メールアドレス、プロフィール画像のURLの辞書一式を取得。 17Database.database().reference().child("Contacts").child(uid!).observeSingleEvent(of: .value, with: { 18 (snapshot) in 19 if let dictionary2 = snapshot.value as? [String:AnyObject]{ 20 21 //辞書のうち、プロフィール画像URLを取得 22 if let profileImageUrl2 = dictionary2["profileImageUrl"] as? String { 23 print(profileImageUrl2) 24 25 //StringをURLに変換 26 let url2 = URL(string: profileImageUrl2) 27 print(url2!) 28 29/* 上記のprint2つとも、以下の現在ログインしているユーザーが登録したプロフィール画像のリンクをちゃんと表示してくれます。 30https://firebasestorage.googleapis.com/v0/b/guy-4cc29.appspot.com/o/profile_images%2FEB70818D-FDE1-4C98-A2DF-431FA0FC6F1A?alt=media&token=83009196-cf26-437f-a494-500fa8b9a8c8 31*/ 32 URLSession.shared.dataTask(with: url2!, completionHandler: { (data, response, error) in 33 print("note") //←これが実行されず、つまづきました。 34 35 36 DispatchQueue.global().async{ 37 DispatchQueue.main.async{ 38 39 self.imageTest.image = UIImage(data:data!) 40 } 41 } 42 43 44 }) 45 } 46 } 47 }, withCancel: nil) 48 49
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/19 14:24