실시간 데이터베이스에서 데이터를 업데이트해야하지만, set
명령 (as described here in the docs)이 작동하지 않습니다. 내가 (따라서 기존의 모든 데이터를 읽고) 쓰기에 영향을주지 않습니다 다른 물건을하고 있어요Firebase 실시간 데이터베이스 : 새로운 데이터 쓰기가 실패했습니다
var config = {
//CONFIG
};
Firebase.initializeApp(config);
var dbRef = Firebase.database().ref();
getAllFirebaseDocs(dbRef);
async function getAllFirebaseDocs(dbRef, newSet) {
var snapshot = await dbRef.once('value');
var data = snapshot.val();
var bookName = "FirebaseForDummies";
var newData = {
'prop1': 'string',
'prop2': 0
}
Firebase.database().ref(bookName + "/edition/"+ 3).set(newData);
}
: 여기 babel-node scriptName.js
로 실행 해요 내 코드입니다. 나는 특히 예를 들어 기존 데이터를 업데이트/보강하고 있습니다. 책 FirebaseForDummies
에는 3 개의 에디션이 이미 있습니다. 이 데이터베이스의 editions
값이이 같이 보입니다 것을 의미한다 :
0: {data}
1: {data}
2: {data}
나는 네 번째를 추가 할, 그래서 FirebaseForDummmies/edition/3
와 DB 참조를 만들 수 있습니다. 그런 다음 문서에서와 마찬가지로 set
을 사용하고 newData
개체를 전달합니다. 그러나 이것은 조용히 실패합니다. 오류 메시지가 나타나지 않고 실시간 데이터베이스 콘솔에 변경 사항이 없습니다.
편집 : 내 콘솔의 babel-node
세션에서이 명령을 시도했지만 제대로 작동했습니다. 그래서 내 스크립트에는 set()
함수가 작동하지 않는 것이 있습니다 ... 그게 뭔지 확실하지 않습니다. 기존의 데이터에 set()
을 구현하는 다른 스크립트가 있고, 그것들은 모두 정상적으로 작동합니다.
EDIT2 :
Firebase.database().ref(bookName + "/edition/"+ 3).set(newData, function(error) {
if(error) {
console.log(error);
}
else {
console.log("written!");
}
});
을 다시 말하지만, 나는 그것이 잘 작동하는 babel-node
콘솔을하려고 할 때 (돌아 서면! ')하지만 내 스크립트에서, 난 몰라 다음과 같이 나는 콜백을 추가 오류 또는 성공 console.log를 얻으십시오.