firebaseデータベースに新しいデータを追加するとアプリに重複して表示されるのはなぜですか?プロジェクトシミュレータにデータがどのように表示されるかのスクリーンショットを作成します。これはプロジェクトにデータが表示される方法です。 Firebaseデータベースに新しく追加されたデータが自己複製してSwift3を使ってリフレッシュする前に複製
これは私のコードです。
import UIKit
import FirebaseDatabase
import SDWebImage
import FirebaseAuth
class ViewController: UIViewController , UITableViewDataSource , UITableViewDelegate {
@IBOutlet weak var tableView: UITableView!
var Ref:FIRDatabaseReference?
var Handle:FIRDatabaseHandle?
var myarray = [Posts]()
var refresh = UIRefreshControl()
override func viewDidLoad() {
super.viewDidLoad()
tableView.delegate = self
tableView.dataSource = self
refresh.addTarget(self, action: #selector(ViewController.loadData), for: .valueChanged)
tableView.addSubview(refresh)
}
override func viewDidAppear(_ animated: Bool) {
loadData()
}
func loadData(){
self.myarray.removeAll()
Ref=FIRDatabase.database().reference()
Handle = Ref?.child("Posts").queryOrdered(byChild: "Des").queryEqual(toValue: "11").observe(.childAdded ,with: { (snapshot) in
if let post = snapshot.value as? [String : AnyObject]{
let img = Posts()
img.setValuesForKeys(post)
self.myarray.append(img)
print("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\(img)")
self.tableView.reloadData()
}
})
self.refresh.endRefreshing()
}
投稿を追加する場所にコードを表示できますか? –
データベースコンソールから直接追加しています。 –
'.childAdded'の代わりに' .value'を使用しようとしましたか? –