firebase
데이터베이스에 액세스 할 때 오류를 수신하려면 어떻게합니까?
수색…
소개
읽기 또는 쓰기 작업이 실패하는 데에는 여러 가지 이유가 있습니다. 보안 규칙이 인증을 거치지 않았거나 (기본적으로 인증 된 사용자 만 데이터베이스에 액세스 할 수 있기 때문에) 또는 사용자가 사용하지 않는 위치에서 글쓰기 / 듣기 등 보안 규칙이 조작을 거부하기 때문에 자주 발생합니다 허락을 받아야 해.
Android에 값을 쓸 때 오류를 감지합니다.
쓰기 작업이 실패하는 데에는 여러 가지 이유가 있습니다. 보안 규칙은 인증되지 않았기 때문에 (예를 들어 데이터베이스는 인증 된 사용자 만 액세스 할 수 있기 때문에) 작업을 거부하기 때문에 자주 발생합니다.
이러한 보안 규칙 위반은 logcat 출력에서 볼 수 있습니다. 그러나 이것을 간과하는 것은 쉽습니다. 또한 자신의 코드에서 처리하고 더 눈에 잘 띄게 표시 할 수 있습니다. 이는 개발 중에 특히 유용합니다 (JSON, 규칙 및 코드가 자주 변경된 이후).
Android에서 실패한 쓰기를 감지하려면 완료 콜백을 setValue
첨부하십시오 .
ref.setValue("My new value", new DatabaseReference.CompletionListener() {
public void onComplete(DatabaseError databaseError, DatabaseReference databaseReference) {
throw databaseError.toException();
}
});
이와 같은 예외를 throw하면 다음에 이러한 오류를 간과하는 것이 매우 어려워집니다.
Android에서 데이터를 읽을 때 오류를 감지합니다.
읽기 작업이 작동하지 않는 이유는 보안 규칙이 인증되지 않았기 때문입니다 (기본적으로 데이터베이스는 인증 된 사용자 만 액세스 할 수 있기 때문에).
이러한 보안 규칙 위반은 logcat 출력에서 볼 수 있습니다. 그러나 이것을 간과하는 것은 쉽습니다. 또한 자신의 코드에서 처리하고 더 눈에 잘 띄게 표시 할 수 있습니다. 이는 개발 중에 특히 유용합니다 (JSON, 규칙 및 코드가 자주 변경된 이후).
Android에서 읽지 못한 것을 감지하려면 ChildEventListener
의 onCancelled
메소드를 구현해야합니다.
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)")
}
이와 같은 예외를 throw하면 다음에 이러한 오류를 간과하는 것이 매우 어려워집니다.
JavaScript에서 데이터를 읽을 때 오류 감지
읽기 작업이 작동하지 않는 이유는 보안 규칙이 인증되지 않았기 때문입니다 (기본적으로 데이터베이스는 인증 된 사용자 만 액세스 할 수 있기 때문에).
이러한 보안 규칙 위반은 브라우저의 JavaScript 콘솔에서 확인할 수 있습니다. 그러나 이것을 간과하는 것은 쉽습니다. 또한 자신의 코드에서 처리하고 더 눈에 잘 띄게 표시 할 수 있습니다. 이는 개발 중에 특히 유용합니다 (JSON, 규칙 및 코드가 자주 변경된 이후).
JavaScript에서 읽지 못한 것을 감지하려면 on()
절 on()
두 번째 콜백을 추가해야합니다.
ref.on('value', function(snapshot) {
console.log(snapshot.key, snapshot.val());
}, function(error) {
alert(error);
})
이 코드를 사용하면 JavaScript에서 데이터를 읽을 때 보안 오류를 간과하는 것이 매우 어려울 것입니다.
JavaScript에서 값을 쓸 때 오류를 감지합니다.
쓰기 작업이 실패하는 데에는 여러 가지 이유가 있습니다. 보안 규칙은 인증되지 않았기 때문에 (예를 들어 데이터베이스는 인증 된 사용자 만 액세스 할 수 있기 때문에) 작업을 거부하기 때문에 자주 발생합니다.
이러한 보안 규칙 위반은 콘솔 출력에서 볼 수 있습니다. 그러나 이것을 간과하는 것은 쉽습니다. 또한 자신의 코드에서 처리하고 더 눈에 잘 띄게 표시 할 수 있습니다. 이는 개발 중에 특히 유용합니다 (JSON, 규칙 및 코드가 자주 변경된 이후).
자바 스크립트에서 실패한 쓰기를 감지하기 위해 완료 콜백을 첨부하여 다음을 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)
})