Firebase 비정규화에서 데이터 일관성 유지
더 빠른 검색을 위해 여러 위치에서 Firebase에 데이터를 쓸 때 모든 위치에서 데이터 일관성을 유지하는 것이 중요합니다. 위치. 이를 달성하기 위한 두 가지 접근 방식은 다음과 같습니다.
원자적 쓰기
Firebase는 이제 여러 경로에 대한 원자적 쓰기를 동시에 수행하는 방법을 제공합니다. multipathWrites 메소드를 사용하면 단일 작업으로 여러 위치를 업데이트할 수 있습니다.
let updates = {}; // all paths to be updated and their new values updates['users/'+uid+'/name'] = name; var query = ref.child('messages').orderByChild('user').equalTo(uid); query.once('value', function(snapshot) { snapshot.forEach(function(messageSnapshot) { updates['messages/'+messageSnapshot.key()+'/username'] = name; }) ref.update(updates); });
최종 일관성
이 접근 방식에는 중복된 데이터를 비동기식으로 업데이트하는 작업이 포함됩니다. 먼저 기본 데이터 소스(예: 사용자 프로필)를 업데이트합니다. 그런 다음 중복된 데이터의 모든 인스턴스(예: 사용자 이름이 포함된 메시지)를 쿼리하고 하나씩 업데이트합니다.
ref.child('users').child(uid).update({ name: name }); var query = ref.child('messages').orderByChild('user').equalTo(uid); query.once('value', function(snapshot) { snapshot.forEach(function(messageSnapshot) { messageSnapshot.update({ username: name }); }) });
데이터 일관성을 위한 팁
위 내용은 Firebase 비정규화에서 데이터 일관성을 유지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!