質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

0回答

1576閲覧

swiftとfirebaseでSNSを作成中。タイムラインのTableViewにfirebaseに投稿した内容が反映されない。

Megum

総合スコア7

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2018/06/21 08:19

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") } }

}
`

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問