firebase
Как я могу слушать ошибки при доступе к базе данных?
Поиск…
Вступление
Существует много причин, по которым операция чтения или записи может завершиться неудачей. Частным является то, что ваши правила безопасности отклоняют операцию, например, потому что вы не аутентифицированы (по умолчанию доступ к базе данных может получить только пользователь, прошедший проверку подлинности) или потому, что вы пишете / слушаете в том месте, где вы не есть разрешение.
Обнаруживать ошибки при записи значения на Android
Существует много причин, по которым операция записи может завершиться неудачей. Частным является то, что ваши правила безопасности отклоняют операцию, например, потому что вы не аутентифицированы (по умолчанию доступ к базе данных может получить только аутентифицированный пользователь).
Вы можете увидеть эти нарушения правил безопасности в выводе logcat. Но их легко упустить. Вы также можете обрабатывать их в своем собственном коде и сделать их более заметными, что особенно полезно во время разработки (поскольку ваши JSON, правила и код часто меняются).
Чтобы обнаружить неудачную запись на Android, вы добавляете обратный вызов завершения для setValue
:
ref.setValue("My new value", new DatabaseReference.CompletionListener() {
public void onComplete(DatabaseError databaseError, DatabaseReference databaseReference) {
throw databaseError.toException();
}
});
Выброс такого исключения гарантирует, что в следующий раз будет очень сложно упустить такую ошибку.
Обнаруживать ошибки при чтении данных на Android
Частая причина, по которой ваша операция чтения может не работать, заключается в том, что ваши правила безопасности отклоняют операцию, например, потому что вы не аутентифицированы (по умолчанию доступ к базе данных может получить только аутентифицированный пользователь).
Вы можете увидеть эти нарушения правил безопасности в выводе logcat. Но их легко упустить. Вы также можете обрабатывать их в своем собственном коде и сделать их более заметными, что особенно полезно во время разработки (поскольку ваши JSON, правила и код часто меняются).
Для обнаружения неудачного чтения на Android вы должны реализовать onCancelled
метода вашего 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();
}
});
Или если у вас есть ValueEventListener
:
databaseRef.addValueEventListener(new ValueEventListener() {
public void onDataChange(DataSnapshot dataSnapshot, String s) { ... }
public void onCancelled(DatabaseError databaseError) {
throw databaseError.toException();
}
});
С этим кодом на месте будет довольно сложно упустить ошибку безопасности при чтении данных на Android.
Обнаружение ошибок при записи значения на iOS
Существует много причин, по которым операция записи может завершиться неудачей. Частным является то, что ваши правила безопасности отклоняют операцию, например, потому что вы не аутентифицированы (по умолчанию доступ к базе данных может получить только аутентифицированный пользователь).
Вы можете видеть эти нарушения правил безопасности в результатах своей программы. Но их легко упустить. Вы также можете обрабатывать их в своем собственном коде и сделать их более заметными, что особенно полезно во время разработки (поскольку ваши JSON, правила и код часто меняются).
Чтобы обнаружить неудачную запись в iOS, вы добавляете блок завершения в setValue :
let message = ["name": "puf", "text": "Hello from iOS"]
ref!.childByAutoId().setValue(message) { (error) in
print("Error while writing message \(error)")
}
Выброс такого исключения гарантирует, что в следующий раз будет очень сложно упустить такую ошибку.
Обнаружение ошибок при чтении данных в JavaScript
Частая причина, по которой ваша операция чтения может не работать, заключается в том, что ваши правила безопасности отклоняют операцию, например, потому что вы не аутентифицированы (по умолчанию доступ к базе данных может получить только аутентифицированный пользователь).
Вы можете увидеть эти нарушения правил безопасности в консоли JavaScript вашего браузера. Но их легко упустить. Вы также можете обрабатывать их в своем собственном коде и сделать их более заметными, что особенно полезно во время разработки (поскольку ваши JSON, правила и код часто меняются).
Чтобы обнаружить неудавшееся чтение в JavaScript, вы должны реализовать добавление второго обратного вызова в ваше предложение on()
:
ref.on('value', function(snapshot) {
console.log(snapshot.key, snapshot.val());
}, function(error) {
alert(error);
})
При использовании этого кода будет довольно сложно упустить ошибку безопасности при чтении данных в JavaScript.
Обнаружение ошибок при записи значения в JavaScript
Существует много причин, по которым операция записи может завершиться неудачей. Частным является то, что ваши правила безопасности отклоняют операцию, например, потому что вы не аутентифицированы (по умолчанию доступ к базе данных может получить только аутентифицированный пользователь).
Вы можете увидеть эти нарушения правил безопасности на выходе консоли. Но их легко упустить. Вы также можете обрабатывать их в своем собственном коде и сделать их более заметными, что особенно полезно во время разработки (поскольку ваши JSON, правила и код часто меняются).
Чтобы обнаружить неудачную запись в JavaScript, вы добавляете обратный вызов завершения для set
:
ref.set("My new value").catch(function(error)
console.error(error);
alert(error);
});
Отображение такого предупреждения гарантирует, что в следующий раз будет очень сложно упустить такую ошибку.
Обнаруживать ошибки при чтении данных на iOS
Частая причина, по которой ваша операция чтения может не работать, заключается в том, что ваши правила безопасности отклоняют операцию, например, потому что вы не аутентифицированы (по умолчанию доступ к базе данных может получить только аутентифицированный пользователь).
Вы можете увидеть эти нарушения правил безопасности на выходе консоли. Но их легко упустить. Вы также можете обрабатывать их в своем собственном коде и сделать их более заметными, что особенно полезно во время разработки (поскольку ваши JSON, правила и код часто меняются).
Чтобы обнаружить неудавшееся чтение на iOS, вы должны реализовать блок withCancel
вашего наблюдателя:
ref!.child("notAllowed").observe(.value, with: { (snapshot) in
print("Got non-existing value: \(snapshot.key)")
}, withCancel: { (error) in
print(error)
})