Firestore - 특정 필드 변경을 들으시겠습니까?
Firestore jsdk로 특정 필드 변경 내용을 들을 수 있는 방법은 무엇입니까?
문서에서는 "SF" 필드 중 하나라도 변경되면 콜백이 트리거됩니다.
db.collection("cities").doc("SF")
.onSnapshot(function(doc) {
console.log("Current data: ", doc && doc.data());
});
그럴수는 없어요.Firestore의 모든 작업은 전체 문서에 있습니다.
이는 Cloud Functions Firestore 트리거(어떤 식으로든 변경된 전체 문서만 수신할 수 있음)에도 해당됩니다.
문서에서 검색할 일부 데이터의 범위를 좁혀야 하는 경우, 하위 집합 내의 문서에 데이터를 배치하고 해당 문서를 개별적으로 쿼리합니다.
Doug가 위에서 언급했듯이, 전체 문서는 귀하의 기능으로 수신될 것입니다.하지만 필터 기능을 만들어 이름을 지었습니다.field
내가 관심이 없는 분야에서 문서 변경이 발생했을 때 문서 변경을 무시하기 위해서입니다.
기능을 복사하여 사용할 수 있습니다.field
당신의 코드에서 위에 링크되어 있습니다.예:
export const yourCloudFunction = functions.firestore
.document('/your-path')
.onUpdate(
field('foo', 'REMOVED', (change, context) => {
console.log('Will get here only if foo was removed');
}),
);
중요:그field
함수는 다른 필드에서 변경사항이 발생한 경우 실행되는 기능을 피하는 것이 아니라, 변경사항이 원하는 것이 아닐 때 무시합니다.문서가 너무 크면 Doug의 제안을 고려해야 합니다.
문서를 듣고 관심 있는 필드에 조건을 설정합니다.
firebase.firestore().collection('Dictionaries').doc('Spanish').collection('Words').doc(word).collection('Pronunciations').doc('Castilian-female-IBM').onSnapshot(function(snapshot) {
if (snapshot.data().audioFiles) { // eliminates an error message
if (snapshot.data().audioFiles.length === 2) {
audioFilesReady++;
if (audioFilesReady === 3) {
$scope.showNextWord();
}
}
}
}, function(error) {
console.error(error);
});
나는 목소리를 위한 문서를 듣고 있습니다.Castilian-female-IBM
), 오디오 파일 배열을 포함합니다.webm
그리고.mp3
형식두 오디오 파일이 비동기식으로 돌아왔을 때snapshot.data().audioFiles.length === 2
이것은 조건부로 증가합니다.두 개의 목소리가 더 돌아올 때 (Castilian-male-IBM
그리고.Latin_American-female-IBM
) 그 때audioFilesReady === 3
그리고 다음 기능$scope.showNextWord()
화재
제가 하는 일은 바로 앞과 뒤의 방법으로 보는 것입니다.
const clientDataBefore = change.before.data();
console.log("Info database before ", clientDataBefore);
const clientDataAfter = change.after.data();
console.log("Info database after ", clientDataAfter );
예를 들어, 이제 특정 필드에 대한 변경 사항을 비교하여 몇 가지 작업을 수행하거나 반환해야 합니다.
before.data() 및 after.data()에 대한 자세한 내용은 여기를 참조하십시오.
언급URL : https://stackoverflow.com/questions/47860531/firestore-listen-to-specific-field-change
'sourcecode' 카테고리의 다른 글
ResolveUrl과 ResolveClientUrl의 차이점은 무엇입니까? (0) | 2023.06.17 |
---|---|
단일 플라스크 프로세스가 수신하는 동시 요청 수는 얼마나 됩니까? (0) | 2023.06.17 |
c#에서 이중 값을 DateTime으로 변환하는 방법은 무엇입니까? (0) | 2023.06.17 |
비밀번호 없이 sudo를 사용하여 mariaDB에 연결 (0) | 2023.06.17 |
MS Excel은 결과 값 대신 셀에 수식을 표시합니다. (0) | 2023.06.17 |