Я занимаюсь исследованиями уже несколько дней и не смог найти решение.Я использую базу данных Firebase в качестве бэк-энда для своего приложения.Как я могу использовать уникальный идентификатор пользователя как способ чтения определенных пользовательских данных?У меня есть список пользователей, и у каждого пользователя есть свои собственные данные, теперь проблема заключается в том, что, когда я выбираю одного из пользователей, я вижу данные всех пользователей, а не только пользователя, которого я выбрал.Я хочу, чтобы иметь возможность просматривать данные каждого пользователя, выбрав их из таблицы.Любая помощь?
import UIKit
import Firebase
import FirebaseDatabase
class detailsViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
//connecting table view
@IBOutlet weak var tableViewCards: UITableView!
// defining firebase reference var
var ref: DatabaseReference!
// list to store card details
var cardList = [CardModel]()
public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return cardList.count
}
public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
// creating a cell using the custom class
let cell = tableViewCards.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! ViewControllerTableViewCell
// the card object
let card: CardModel
//getting the name
card = cardList[indexPath.row]
//adding values to labels
cell.labelName.text = card.name
cell.labelCompanyName.text = card.company
cell.labelRole.text = card.role
cell.labelMobile.text = card.mobile
cell.labelPhone.text = card.telephone
cell.labelEmail.text = card.email
cell.labelAddress.text = card.address
return cell
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
// getting a reference to the database
ref = Database.database().reference()
// observing data changes
ref.observe(DataEventType.value, with: {(snapshot) in
// if the reference has values
if snapshot.childrenCount > 0 {
//clearing the list
self.cardList.removeAll()
//iterating through all the values
for cards in snapshot.children.allObjects as! [DataSnapshot] {
//getting values
let cardObject = cards.value as? [String: AnyObject]
let personName = cardObject?["name"]
let cardId = cardObject?["id"]
let companyName = cardObject?["company"]
let roleName = cardObject?["role"]
let mobileNo = cardObject?["mobile"]
let phoneNo = cardObject?["telephone"]
let emailAdd = cardObject?["email"]
let compAdd = cardObject?["address"]
//creating card object with model and values
let card = CardModel(id: cardId as! String?, name: personName as! String?, company: companyName as! String?, role: roleName as! String?, mobile: mobileNo as! String?, telephone: phoneNo as! String?, email: emailAdd as! String?, address: compAdd as! String?)
//appending it to the list
self.cardList.append(card)
}
//reloading to the tableView
self.tableViewCards.reloadData()
}
})
}
}
Структура базы данных:
{
"-LOGJARYHpNDqiReJGP3" : {
"address" : "10 test st test ",
"company" : "grated",
"email" : "test@email.com",
"id" : "-LOGJARYHpNDqiReJGP3",
"mobile" : "0412345678",
"name" : "Jason",
"role" : "engineer",
"telephone" : "02999999"
}
}