Πώς να καλέσετε firebase αναφορά μόνο όταν έχει επιλεγεί Tab bar View

ψήφοι
0

Είμαι σχετικά νέος στο Xcode / ταχεία έτσι συγγνώμη εκ των προτέρων. Έχω έναν ελεγκτή μπαρ καρτέλα με 4 καρτέλες. Κάθε καρτέλα έχει θέα χειριστήριο πλοήγησης ενσωματωμένο μέσα. Αυτό λειτουργεί και μπορώ να επιλέξετε κάθε ένα από τα 4 καρτέλες.

Έχω 2 υποκαταστήματα σε firebase βάση δεδομένων, παραδείγματος χάριν:

γυμναστήριο - gym1 - image_url: someURL

ΚΑΙ

χρήστη - userId - γυμναστήριο: gym1

Στον 1ο καρτέλα (εμφανίζεται όταν ο χρήστης συνδέεται in) την «image_url» που συνδέονται με την «γυμναστήριο» τους εμφανίζεται. Στην καρτέλα 4ο, ο χρήστης μπορεί να επεξεργαστεί το προφίλ τους, η οποία περιλαμβάνει την επεξεργασία «γυμναστήριο» τους.

το θέμα μου είναι οι δύο επιλογές έχω για να πάρει αυτά τα δεδομένα από firebase είτε «παρατηρούν» ή «observeSingleEvent».

Αν μπορώ να χρησιμοποιήσω «observeSingleEvent» για να τραβήξει αυτά τα δεδομένα από firebase, λειτουργεί μόνο όταν ο χρήστης συνδέεται στο και το Tab Bar εμφανίζεται αρχικά. Αν ο χρήστης αλλάζει γυμναστήριο τους στην καρτέλα 4ο και πηγαίνει πίσω στο 1ο, θα δείξει ακόμα το πρώτο φορτωμένο εικόνα.

Αν μπορώ να χρησιμοποιήσω «παρατηρούν», όπως προκύπτει από την κονσόλα που στην καρτέλα 4ο, τη στιγμή που ο χρήστης αλλάζει γυμναστήριο τους, τα δεδομένα τραβιέται από firebase, έστω και αν η σχετική καρτέλα δεν είναι ανοιχτή. Πηγαίνοντας πίσω στο 1ο καρτέλα δείχνει τη σωστή γυμναστική τώρα.

Θα προτιμούσα ότι αντί οποιουδήποτε από τα παραπάνω, ο κώδικας που συνδέεται με τον ελεγκτή θέα ενσωματωμένο στο 1ο καρτέλα είναι πρόσφατα εκτελεστεί μόνο όταν η 1η καρτέλα κλικ. Μπορεί να γίνει αυτό;

class GymViewController: UIViewController {

@IBOutlet weak var gym_imageView: UIImageView!

var gym:String = 
var image_url:String = 

override func viewDidLoad() {
    super.viewDidLoad()
    getActiveGym()
}


func getActiveGym() {

    let userID = Auth.auth().currentUser?.uid
    print(userID: \(userID!))
    var ref: DatabaseReference!

    ref = Database.database().reference()
    print(ref: \(ref!))
    ref.child(users).child(userID!).observeSingleEvent(of: .value, with {(DataSnapshot) in

            let value = DataSnapshot.value as? NSDictionary
            self.gym = value?[gym] as? String ?? 
            self.getUrl()
    })

Ή

    ref.child(users).child(userID!).observe(.value, with: {(DataSnapshot) in

        let value = DataSnapshot.value as? NSDictionary
        self.gym = value?[gym] as? String ?? 
        self.getUrl()
    })

  }strong text
Δημοσιεύθηκε 09/10/2019 στις 19:02
πηγή χρήστη
Σε άλλες γλώσσες...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more