Ricerca…


introduzione

Ci sono molte ragioni per cui un'operazione di lettura o scrittura potrebbe fallire. Uno frequente è perché le regole di sicurezza rifiutano l'operazione, ad esempio perché non sei autenticato (per impostazione predefinita un database è accessibile solo da un utente autenticato) o perché stai scrivendo / ascoltando in una posizione in cui non lo fai avere il permesso.

Rileva errori durante la scrittura di un valore su Android

Ci sono molte ragioni per cui un'operazione di scrittura può fallire. Uno frequente è perché le regole di sicurezza rifiutano l'operazione, ad esempio perché non sei autenticato (per impostazione predefinita un database può essere visitato solo da un utente autenticato).

È possibile vedere queste violazioni delle regole di sicurezza nell'output del logcat. Ma è facile trascurare questi. Puoi anche gestirli nel tuo codice e renderli più visibili, il che è particolarmente utile durante lo sviluppo (dal momento che JSON, regole e codice cambiano spesso).

Per rilevare una scrittura non riuscita su Android, allegare una callback di completamento a setValue :

ref.setValue("My new value", new DatabaseReference.CompletionListener() {
    public void onComplete(DatabaseError databaseError, DatabaseReference databaseReference) {
        throw databaseError.toException();
    }
});

Lanciare un'eccezione come questa assicura che sarà molto difficile trascurare un errore simile la prossima volta.

Rileva errori durante la lettura dei dati su Android

Un motivo frequente per cui l'operazione di lettura potrebbe non funzionare è perché le regole di sicurezza rifiutano l'operazione, ad esempio perché non sei autenticato (per impostazione predefinita un database può essere visitato solo da un utente autenticato).

È possibile vedere queste violazioni delle regole di sicurezza nell'output del logcat. Ma è facile trascurare questi. Puoi anche gestirli nel tuo codice e renderli più visibili, il che è particolarmente utile durante lo sviluppo (dal momento che JSON, regole e codice cambiano spesso).

Per rilevare una lettura non riuscita su Android è necessario implementare il metodo onCancelled di 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();
    }
});

Oppure se hai un ValueEventListener :

databaseRef.addValueEventListener(new ValueEventListener() {
    public void onDataChange(DataSnapshot dataSnapshot, String s) { ... }
    public void onCancelled(DatabaseError databaseError) {
        throw databaseError.toException();
    }
});

Con questo codice in atto sarà piuttosto difficile trascurare un errore di sicurezza durante la lettura dei dati su Android.

Rileva errori durante la scrittura di un valore su iOS

Ci sono molte ragioni per cui un'operazione di scrittura può fallire. Uno frequente è perché le regole di sicurezza rifiutano l'operazione, ad esempio perché non sei autenticato (per impostazione predefinita un database può essere visitato solo da un utente autenticato).

Puoi vedere queste violazioni delle regole di sicurezza nell'output del tuo programma. Ma è facile trascurare questi. Puoi anche gestirli nel tuo codice e renderli più visibili, il che è particolarmente utile durante lo sviluppo (dal momento che JSON, regole e codice cambiano spesso).

Per rilevare una scrittura non riuscita su iOS, allegare un blocco di completamento a setValue :

let message = ["name": "puf", "text": "Hello from iOS"]
ref!.childByAutoId().setValue(message) { (error) in
    print("Error while writing message \(error)")
}

Lanciare un'eccezione come questa assicura che sarà molto difficile trascurare un errore simile la prossima volta.

Rilevamento di errori durante la lettura dei dati in JavaScript

Un motivo frequente per cui l'operazione di lettura potrebbe non funzionare è perché le regole di sicurezza rifiutano l'operazione, ad esempio perché non sei autenticato (per impostazione predefinita un database può essere visitato solo da un utente autenticato).

Puoi vedere queste violazioni delle regole di sicurezza nella console JavaScript del tuo browser. Ma è facile trascurare questi. Puoi anche gestirli nel tuo codice e renderli più visibili, il che è particolarmente utile durante lo sviluppo (dal momento che JSON, regole e codice cambiano spesso).

Per rilevare una lettura non riuscita in JavaScript devi implementare aggiungere una seconda richiamata alla tua clausola on() :

ref.on('value', function(snapshot) {
    console.log(snapshot.key, snapshot.val());
}, function(error) {
    alert(error);
})

Con questo codice in atto sarà piuttosto difficile trascurare un errore di sicurezza durante la lettura dei dati in JavaScript.

Rilevare errori durante la scrittura di un valore in JavaScript

Ci sono molte ragioni per cui un'operazione di scrittura può fallire. Uno frequente è perché le regole di sicurezza rifiutano l'operazione, ad esempio perché non sei autenticato (per impostazione predefinita un database può essere visitato solo da un utente autenticato).

È possibile vedere queste violazioni delle regole di sicurezza nell'output della console. Ma è facile trascurare questi. Puoi anche gestirli nel tuo codice e renderli più visibili, il che è particolarmente utile durante lo sviluppo (dal momento che JSON, regole e codice cambiano spesso).

Per rilevare una scrittura non riuscita in JavaScript, allegare una callback di completamento per set :

ref.set("My new value").catch(function(error)
    console.error(error);
    alert(error);
});

Mostrare un avviso come questo assicura che sarà molto difficile trascurare un errore simile la prossima volta.

Rileva errori durante la lettura dei dati su iOS

Un motivo frequente per cui l'operazione di lettura potrebbe non funzionare è perché le regole di sicurezza rifiutano l'operazione, ad esempio perché non sei autenticato (per impostazione predefinita un database può essere visitato solo da un utente autenticato).

È possibile vedere queste violazioni delle regole di sicurezza nell'output della console. Ma è facile trascurare questi. Puoi anche gestirli nel tuo codice e renderli più visibili, il che è particolarmente utile durante lo sviluppo (dal momento che JSON, regole e codice cambiano spesso).

Per rilevare una lettura non riuscita su iOS, devi implementare il blocco withCancel del tuo osservatore:

    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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow