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

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

ただいまの
回答率

90.84%

  • Swift

    6493questions

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

  • Firebase

    462questions

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

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

受付中

回答 0

投稿

  • 評価
  • クリップ 0
  • VIEW 94

Megum

score 1

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

}
`

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

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

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

  • ただいまの回答率 90.84%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Swift

    6493questions

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

  • Firebase

    462questions

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