swiftとfirebaseでSNSを作成しています。
完全初心者です。
firebaseのdatabaseに投稿内容を送ることはできているのですが、
それを取得してTableViewに表示させることができません。
ホーム画面のタイムラインのTableViewにfirebaseに投稿した内容が反映されません。
ビルドは成功します。
クラッシュはせず、
現在は、Home画面に読み込みのloadingのマークがずっと走っているだけです。
右下のコンソールには、
2018-06-21 17:17:00.002956+0900 stripe[592:231879] Status bar could not find cached time string image. Rendering in-process.
と出ています。
素人な質問で申し訳ありません。
間違いなどおかしな点が見当たりましたら、教えていただきたいです。
ホーム画面のコード
import UIKit
import FirebaseDatabase
import FirebaseAuth
class HomeViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
var databaseRef = Database.database().reference() var loggedInUser:AnyObject? var loggedInUserData:AnyObject? @IBOutlet weak var aivLoading: UIActivityIndicatorView! @IBOutlet weak var HomeTableView: UITableView! var tweets = [AnyObject?]() override func viewDidLoad() { super.viewDidLoad() self.loggedInUser = Auth.auth().currentUser //get the logged in users details self.databaseRef.child("user_profiles").child(self.loggedInUser!.uid).observeSingleEvent(of: .value) {(snapshot:DataSnapshot) in self.databaseRef.child("tweets").child(self.loggedInUser!.uid).observe(.childAdded, with: { (snapshot:DataSnapshot) in self.tweets.append(snapshot) self.HomeTableView.insertRows(at: [IndexPath(row:0,section:0)], with: UITableViewRowAnimation.automatic) self.aivLoading.stopAnimating() }){(error) in print(error.localizedDescription) } } } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } func numberOfSections(in tableView: UITableView) -> Int { return 1 } func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return self.tweets.count } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell: HomeViewTableViewCell = tableView.dequeueReusableCell(withIdentifier: "HomeViewTableViewCell", for: indexPath) as! HomeViewTableViewCell let tweet = tweets[(self.tweets.count-1) - (indexPath.row)]!["text"] as! String cell.configure(profilePic: nil,name:self.loggedInUserData!["name"] as! String,handle:self.loggedInUserData!["handle"] as! String,tweet:tweet) return cell }
}
`
セルのコード
`
// HomeViewTableViewCell.swift
import UIKit
public class HomeViewTableViewCell: UITableViewCell {
@IBOutlet weak var profilePic: UIImageView! @IBOutlet weak var name: UILabel! @IBOutlet weak var handle: UILabel! @IBOutlet weak var tweet: UITextView! override public func awakeFromNib() { super.awakeFromNib() // Initialization code } public func configure(profilePic:String?,name:String,handle:String,tweet:String) { self.tweet.text = tweet self.handle.text = "@"+handle self.name.text = name if((profilePic) != nil) { let imageData = NSData(contentsOf: NSURL(string:profilePic!)! as URL) self.profilePic.image = UIImage(data:imageData! as Data) } else { self.profilePic.image = UIImage(named:"twitter") } }
}
`
あなたの回答
tips
プレビュー