Firebase에서 노드를 삭제/제거하는 방법
웹 앱으로 파이어베이스를 사용하고 있습니다.외부 라이브러리를 사용하지 않고 일반 자바스크립트로 작성되었습니다.
.on("child_added")을 사용하여 "push"하고 데이터를 검색할 수 있지만, '.remove()'가 지정된 방식으로 작동하지 않습니다.API에 따르면,
"Firebase.remove() - 이 Firebase 위치에서 데이터를 제거합니다.하위 위치에 있는 모든 데이터도 삭제됩니다.삭제의 효과가 즉시 표시됩니다."
그러나 제거는 전체 스크립트 실행이 완료된 경우에만 즉시 수행되지 않습니다.저는 제거한 후 즉시 제거된 트리를 사용해야 합니다.
코드 예제:
ref = new Firebase("myfirebase.com") //works
ref.push({key:val}) //works
ref.on('child_added', function(snapshot){
//do stuff
}); //works
ref.remove()
//does not remove until the entire script/page is done
여기에도 비슷한 게시물이 있지만 저는 Ember 라이브러리를 사용하지 않고 있으며, API가 설명하는 것처럼 단순해야 하는 것에 대한 해결책인 것 같습니다.
문제는 당신이 전화를 한다는 것입니다.remove
Firebase의 루트에 있습니다.
ref = new Firebase("myfirebase.com")
ref.remove();
그러면 API를 통해 전체 Firebase가 제거됩니다.
그러나 일반적으로 다음 작업을 수행하는 특정 하위 노드를 제거할 수 있습니다.
ref.child(key).remove();
이 코드가 누군가에게 도움이 되기를 바랍니다. 공식 Google Firebase 문서에 나와 있습니다.
var adaRef = firebase.database().ref('users/ada');
adaRef.remove()
.then(function() {
console.log("Remove succeeded.")
})
.catch(function(error) {
console.log("Remove failed: " + error.message)
});
Firebase.remove()
대부분의 Firebase 메서드는 비동기식이므로 이벤트를 청취하여 언제 어떤 일이 발생했는지 알아야 합니다.
parent = ref.parent()
parent.on('child_removed', function (snapshot) {
// removed!
})
ref.remove()
Firebase 문서에 따르면 네트워크 연결이 끊기는 경우에도 작동해야 합니다.변경사항이 Firebase 서버와 실제로 동기화되었는지 알고 싶다면 콜백 기능을 다음으로 전달할 수 있습니다.Firebase.remove
방법:
ref.remove(function (error) {
if (!error) {
// removed!
}
}
레코드를 제거합니다.
var db = firebase.database();
var ref = db.ref();
var survey=db.ref(path+'/'+path); //Eg path is company/employee
survey.child(key).remove(); //Eg key is employee id
다른 사람들이 언급한 것처럼.remove()
비동기입니다.우리 모두는 빛의 속도에 있더라도 '순간적으로' 아무 일도 일어나지 않는다는 것을 알아야 합니다.
당신이 '즉각'을 의미하는 것은 다음 코드 라인이 통화 후에 실행될 수 있어야 한다는 것입니다..remove()
비동기식 작업의 경우 다음 행은 데이터가 제거되었을 때가 될 수 있지만 그렇지 않을 수도 있습니다. 즉, 우연과 경과 시간에 전적으로 달려 있습니다.
.remove()
에서는 작업이 완료되었음을 알고(오류 유무에 관계없이) 작업을 수행하기 위해 이 상황을 처리하는 데 도움이 되는 콜백 함수 하나의 매개 변수를 사용합니다. .push()
두 개의 매개 변수, 값 및 콜백을 사용합니다..remove()
.
다음은 수정된 코드 예제입니다.
ref = new Firebase("myfirebase.com")
ref.push({key:val}, function(error){
//do stuff after push completed
});
// deletes all data pushed so far
ref.remove(function(error){
//do stuff after removal
});
액시오스를 사용하고 서비스 콜을 통해 시도하는 경우.
URL: https://react-16-demo.firebaseio.com/
Schema Name: todos
Key: -Lhu8a0uoSRixdmECYPE
axios.delete(`https://react-16-demo.firebaseio.com/todos/-Lhu8a0uoSRixdmECYPE.json`). then();
도울 수 있습니다.
언급URL : https://stackoverflow.com/questions/26537720/how-to-delete-remove-nodes-on-firebase
'source' 카테고리의 다른 글
VBA를 사용하여 Excel 시트를 현재 디렉토리에 저장 (0) | 2023.06.10 |
---|---|
이 식은 호출할 수 없습니다.'번호' 유형에 호출 서명이 없습니다. (0) | 2023.06.10 |
Oracle: DBMS_UTILITY.EXEC_DDL_STATION 대 즉시 실행 (0) | 2023.06.10 |
모든 그룹을 선택하고 사용자가 그룹에 있는지 확인합니다. (0) | 2023.06.10 |
GetText를 사용하여 클립보드에서 텍스트 가져오기 - 빈 클립보드에서 오류 방지 (0) | 2023.06.10 |