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)
    })


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow