firebase
Wie höre ich beim Zugriff auf die Datenbank auf Fehler?
Suche…
Einführung
Es gibt viele Gründe, warum ein Lese- oder Schreibvorgang fehlschlagen kann. Ein häufiger Grund ist, dass Ihre Sicherheitsregeln den Vorgang ablehnen, z. B. weil Sie nicht authentifiziert sind (standardmäßig kann eine Datenbank nur von einem authentifizierten Benutzer aufgerufen werden) oder weil Sie an einem Ort schreiben / hören, an dem Sie nicht arbeiten habe die Erlaubnis.
Erkennen Sie Fehler, wenn Sie einen Wert unter Android schreiben
Es gibt viele Gründe, warum ein Schreibvorgang fehlschlagen kann. Ein häufiger Grund ist, dass Ihre Sicherheitsregeln den Vorgang ablehnen, z. B. weil Sie nicht authentifiziert sind (standardmäßig kann auf eine Datenbank nur ein authentifizierter Benutzer zugreifen).
Sie können diese Sicherheitsregelverletzungen in der logcat-Ausgabe sehen. Aber es ist leicht, diese zu übersehen. Sie können sie auch in Ihrem eigenen Code behandeln und deutlicher sichtbar machen, was besonders während der Entwicklung hilfreich ist (da sich JSON, Regeln und Code häufig ändern).
Um einen fehlgeschlagenen Schreibvorgang unter Android zu erkennen, hängen Sie an setValue
einen Beendigungsrückruf an :
ref.setValue("My new value", new DatabaseReference.CompletionListener() {
public void onComplete(DatabaseError databaseError, DatabaseReference databaseReference) {
throw databaseError.toException();
}
});
Wenn Sie eine solche Ausnahme auslösen, ist es sehr schwierig, einen solchen Fehler beim nächsten Mal zu übersehen.
Erkennen Sie Fehler beim Lesen von Daten auf Android
Ein häufiger Grund dafür, dass Ihre Leseoperation möglicherweise nicht funktioniert, ist, dass Ihre Sicherheitsregeln die Operation ablehnen, z. B. weil Sie nicht authentifiziert sind (standardmäßig kann nur auf einen Benutzer eine Datenbank zugreifen).
Sie können diese Sicherheitsregelverletzungen in der logcat-Ausgabe sehen. Aber es ist leicht, diese zu übersehen. Sie können sie auch in Ihrem eigenen Code behandeln und deutlicher sichtbar machen, was besonders während der Entwicklung hilfreich ist (da sich JSON, Regeln und Code häufig ändern).
Um einen fehlgeschlagenen onCancelled
Android zu erkennen, müssen Sie die onCancelled
Methode Ihres ChildEventListener
:
databaseRef.addChildEventListener(new ChildEventListener() {
public void onChildAdded(DataSnapshot dataSnapshot, String s) { ... }
public void onChildChanged(DataSnapshot dataSnapshot, String s) { ... }
public void onChildRemoved(DataSnapshot dataSnapshot) { ... }
public void onChildMoved(DataSnapshot dataSnapshot, String s) { ... }
public void onCancelled(DatabaseError databaseError) {
throw databaseError.toException();
}
});
Oder wenn Sie einen ValueEventListener
:
databaseRef.addValueEventListener(new ValueEventListener() {
public void onDataChange(DataSnapshot dataSnapshot, String s) { ... }
public void onCancelled(DatabaseError databaseError) {
throw databaseError.toException();
}
});
Mit diesem Code ist es sehr schwer, einen Sicherheitsfehler beim Lesen von Daten auf Android zu übersehen.
Erkennen Sie Fehler, wenn Sie einen Wert unter iOS schreiben
Es gibt viele Gründe, warum ein Schreibvorgang fehlschlagen kann. Ein häufiger Grund ist, dass Ihre Sicherheitsregeln den Vorgang ablehnen, z. B. weil Sie nicht authentifiziert sind (standardmäßig kann auf eine Datenbank nur ein authentifizierter Benutzer zugreifen).
Sie können diese Sicherheitsregelverletzungen in der Ausgabe Ihres Programms sehen. Aber es ist leicht, diese zu übersehen. Sie können sie auch in Ihrem eigenen Code behandeln und deutlicher sichtbar machen, was besonders während der Entwicklung hilfreich ist (da sich JSON, Regeln und Code häufig ändern).
Um einen fehlgeschlagenen Schreibvorgang unter iOS zu erkennen, fügen Sie setValue einen Abschlussblock hinzu
let message = ["name": "puf", "text": "Hello from iOS"]
ref!.childByAutoId().setValue(message) { (error) in
print("Error while writing message \(error)")
}
Wenn Sie eine solche Ausnahme auslösen, ist es sehr schwierig, einen solchen Fehler beim nächsten Mal zu übersehen.
Fehler beim Lesen von Daten in JavaScript erkennen
Ein häufiger Grund dafür, dass Ihre Leseoperation möglicherweise nicht funktioniert, ist, dass Ihre Sicherheitsregeln die Operation ablehnen, z. B. weil Sie nicht authentifiziert sind (standardmäßig kann nur auf einen Benutzer eine Datenbank zugreifen).
Sie können diese Sicherheitsregelverletzungen in der JavaScript-Konsole Ihres Browsers sehen. Aber es ist leicht, diese zu übersehen. Sie können sie auch in Ihrem eigenen Code behandeln und deutlicher sichtbar machen, was besonders während der Entwicklung hilfreich ist (da sich JSON, Regeln und Code häufig ändern).
Um ein fehlgeschlagenes Lesen in JavaScript zu erkennen, müssen Sie Ihrer on()
Klausel einen zweiten Callback hinzufügen:
ref.on('value', function(snapshot) {
console.log(snapshot.key, snapshot.val());
}, function(error) {
alert(error);
})
Mit diesem Code wird es sehr schwer sein, einen Sicherheitsfehler beim Lesen von Daten in JavaScript zu übersehen.
Fehler beim Schreiben eines Wertes in JavaScript
Es gibt viele Gründe, warum ein Schreibvorgang fehlschlagen kann. Ein häufiger Grund ist, dass Ihre Sicherheitsregeln den Vorgang ablehnen, z. B. weil Sie nicht authentifiziert sind (standardmäßig kann auf eine Datenbank nur ein authentifizierter Benutzer zugreifen).
Sie können diese Sicherheitsregelverletzungen in der Konsolenausgabe sehen. Aber es ist leicht, diese zu übersehen. Sie können sie auch in Ihrem eigenen Code behandeln und deutlicher sichtbar machen, was besonders während der Entwicklung hilfreich ist (da sich JSON, Regeln und Code häufig ändern).
Um ein fehlerhaftes Schreiben in JavaScript zu erkennen, hängen Sie einen Beendigungsrückruf an, um Folgendes set
:
ref.set("My new value").catch(function(error)
console.error(error);
alert(error);
});
Wenn Sie eine solche Warnung anzeigen, ist es sehr schwierig, einen solchen Fehler beim nächsten Mal zu übersehen.
Erkennen Sie Fehler beim Lesen von Daten unter iOS
Ein häufiger Grund dafür, dass Ihre Leseoperation möglicherweise nicht funktioniert, ist, dass Ihre Sicherheitsregeln die Operation ablehnen, z. B. weil Sie nicht authentifiziert sind (standardmäßig kann nur auf einen Benutzer eine Datenbank zugreifen).
Sie können diese Sicherheitsregelverletzungen in der Console-Ausgabe sehen. Aber es ist leicht, diese zu übersehen. Sie können sie auch in Ihrem eigenen Code behandeln und deutlicher sichtbar machen, was besonders während der Entwicklung hilfreich ist (da sich JSON, Regeln und Code häufig ändern).
Um einen fehlgeschlagenen withCancel
iOS zu erkennen, müssen Sie den withCancel
Block Ihres Beobachters implementieren:
ref!.child("notAllowed").observe(.value, with: { (snapshot) in
print("Got non-existing value: \(snapshot.key)")
}, withCancel: { (error) in
print(error)
})