Warnung in der console über die Berechtigung verweigert (FB)
Hier ist mein code:
var handler:FIRDatabaseHandle!
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.handler = self.ref.observe(.value, with: {[weak self] (snapshot) in
var _tasks = Array<Task>()
for item in snapshot.children {
let task = Task(snapshot: item as! FIRDataSnapshot)
_tasks.append(task)
}
self?.tasks = _tasks
self?.tableView.reloadData()
})
}
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
self.ref.removeAllObservers()
}
Also, wenn ich lassen Sie dieses controller (eigentlich melde ich mich aus) ich siehe nächste Warnung in der Konsole:
[FB/Datenbank][I-RDB04822] - Listener an
/Benutzer/ovLWTmGIPFaF6DaLzrPBBr13/tasks failed: permission_denied
- Ich bekam dieselbe Warnung, wenn ich vergessen in Eile lassen reff = ref.Kind("activeList"). Ich habe direkt abgefragt :- ref = Datenbank.Datenbank().Verweis().queryOrdered(byChild: "Eltern").queryEqual(toValue: projectRef) //die Erlaubnis verweigert, So habe ich ersetzen durch die Datenbank.Datenbank().Verweis().Kind("activeList").queryOrdered(byChild: "Eltern").queryEqual(toValue: projectRef)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das bedeutet, dass der Hörer befestigt ist, an einem Ort, wo es nicht berechtigt ist.
Können Sie ignorieren, die Protokollierung, da Sie wahrscheinlich nicht über die Pflege der Daten nicht mehr.
Aber wenn Sie lieber eine saubere log: um zu verhindern, dass die Protokollierung stellen Sie sicher, dass Sie, aufheben der Registrierung der Beobachter vor Abmelden. Um dies zu tun, rufen Sie
removeObserver(withHandle:...)
oder (vielleicht einfacher, in diesem Fall)removeAllObservers
.Es geschieht, weil Sie sind nicht berechtigt auf die Datenbank.
Sie haben ein listener angehängt an einem Ort, wo es nicht berechtigt ist.
Überprüfen Sie die Registerkarte "Regeln" in der Echtzeit-Datenbank
Wenn es
Dies bedeutet, dass nur autorisierte Benutzer können Lesen und schreiben der Daten.
Wechsel zu
Ermöglicht jedermann zu Lesen/in die Datenbank zu schreiben.
Natürlich ist es (meist) keine gültige Regel für eine Produktionsumgebung, aber es ist nützlich, um Ihr Problem zu überprüfen.
Bitte lookup-Bild und gehen Sie folgendermaßen vor. Wenn Sie Anfänger sind und vor problem im Bild. Ich kleine video über den Fehler.
- Video-Lösung :
https://youtu.be/fZrOkCqQpTc
Bild Lösung :
Den FB-Echtzeit-Datenbank-Regeln sind nur für authentifizierte Benutzer standardmäßig.
Wenn Sie noch nicht die Regeln geändert, oder nicht authentifiziert sind, werden Sie nicht in der Lage zu Lesen oder zu schreiben, was aus Ihrer Datenbank. Für jetzt, wenn Sie nur versuchen, Dinge können Sie versuchen, die Einstellung "auth"! = null" auf true, das wird niemandem gestatten, zu schreiben und Lesen aus der Datenbank.
Ist dies im Allgemeinen nicht empfohlen, da es nicht sicher. Es sollte ein tab neben Daten wo können Sie die Regeln anpassen.
Können Sie Lesen, auf die Datenbank Regeln in dem link, den ich unten angegeben.
Verstehen, FB Echtzeit-Datenbank Regeln