Быстрый вызов Firebase в NSDictionary - PullRequest
0 голосов
/ 18 сентября 2018

Мне нужно упаковать вызов firebase в NSDictionary, который находится внутри класса данных, который я использую для настройки ячейки таблицы, в которой отображаются данные вызовов firebase. Мне нужна помощь в настройке NSDictionary в файле структуры данных и в том, как добавить строки вызова Firebase в NSDictionary.

Мне нужно, чтобы uid, businessName, businessStreet, businessCity и businessState были сохранены в NSDictionary. Под «toDict» показано, как добавить данные в ячейку табличного представления.

Файл структуры данных ячейки TableView

import UIKit

class Information {

 public func toDict() -> NSDictionary {



    return toDict()
}



var uid: String
var businessName: String
var businessStreet: String
var businessCity: String
var businessState: String


init(uid: String, businessName: String, businessStreet: String, businessCity: String, businessState: String){

    self.uid = uid
    self.businessName = businessName
    self.businessStreet = businessStreet
    self.businessCity = businessCity
    self.businessState = businessState
}

}

Firebase Call

func getFollowingData() {
    self.yourFollowing.removeAll()
    self.following.removeAll()
    self.followingTableView.reloadData()

    Database.database().reference().child("Businesses").child((loggedInUser?.uid)!).child("following").observe(.value, with: { snapshot in
        if snapshot.exists() {
            MBProgressHUD.showAdded(to: self.view, animated: true)
            let databaseRef = Database.database().reference()
            databaseRef.child("Businesses").queryOrderedByKey().observeSingleEvent(of: .value, with: { (usersSnapshot) in
                let users = usersSnapshot.value as! [String: AnyObject]
                for (_, value) in users {
                    if let userID = value["uid"] as? String {
                        if userID == Auth.auth().currentUser?.uid {
                            print(value)
                            if let followingUsers = value["following"] as? [String : String] {
                                for (_,user) in followingUsers {
                                    self.following.append(user)
                                }
                            }
                            databaseRef.child("following").queryOrderedByKey().observeSingleEvent(of: .value, with: { (postsSnapshot) in
                                let posts = postsSnapshot.value as! [String: AnyObject]

                                for (_, post) in posts {
                                    for (_, postInfo) in post as! [String: AnyObject] {
                                        if let followingID = postInfo["uid"] as? String {
                                            for each in self.following {
                                                if each == followingID {
                                                    guard let uid = postInfo["uid"] as! String? else {return}
                                                    guard let name = postInfo["businessName"] as! String? else {return}
                                                    guard let address = postInfo["businessStreet"] as! String? else {return}
                                                    guard let state = postInfo["businessState"] as! String? else {return}
                                                    guard let city = postInfo["businessCity"] as! String? else {return}

                                                    self.yourFollowing.append(Information(uid: uid, businessName: name, businessStreet: address, businessCity: city, businessState: state))



                                                }

                                                self.followingTableView.backgroundView = nil
                                                self.followingTableView.reloadData()
                                            }
                                        }
                                    }
                                }
                                MBProgressHUD.hide(for: self.view, animated: true)
                            }) { (error) in
                                print(error.localizedDescription)
                            }
                        }
                    }
                }

            })
        } else {
            print("Not following anyone")
            self.followingTableView.backgroundView = self.noDataView
            MBProgressHUD.hide(for: self.view, animated: true)
        }
    })

}

Я добавляю вызов firebase с помощью "self.yourFollowing.append (Информация (uid: uid, businessName: name, businessStreet: address, businessCity: city, businessState: state))" Я пытаюсь добавить эту информацию в ту же файл в NSDictionary "noDict", но не знаю, как настроить NSDictionary или добавить информацию в "noDict".

...