>웹 프론트엔드 >JS 튜토리얼 >Firebase에서 2시간이 지난 데이터 삭제를 자동화하려면 어떻게 해야 합니까?

Firebase에서 2시간이 지난 데이터 삭제를 자동화하려면 어떻게 해야 합니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-29 21:48:12546검색

How Can I Automate the Deletion of Data Older Than Two Hours in Firebase?

Firebase에서 데이터 정리 자동화

2시간이 지난 Firebase 데이터를 효율적으로 삭제하려면 다음 접근 방식을 고려하세요.

Firebase 제한 사항:

Firebase는 '2시간 전'과 같은 동적 매개변수가 포함된 쿼리를 제공하지 않습니다. 그러나 "특정 타임스탬프 이후"와 같은 특정 값에 대한 쿼리를 실행할 수 있습니다.

시간 기반 삭제:

다음을 위해 주기적으로 실행되는 코드 조각을 구현합니다. 그 시간에 2시간보다 오래된 데이터를 삭제하세요. time.

var ref = firebase.database().ref('/path/to/items/');
var now = Date.now();
var cutoff = now - 2 * 60 * 60 * 1000;
var old = ref.orderByChild('timestamp').endAt(cutoff).limitToLast(1);

var listener = old.on('child_added', function(snapshot) {
    snapshot.ref.remove();
});

구현 세부 정보:

  • 삭제를 효율적으로 처리하려면 value 및limitToLast(1) 대신 child_add를 사용하세요.
  • 각 하위 항목이 삭제되면 Firebase는 컷오프 이후 항목이 더 이상 없을 때까지 새로운 '마지막' 항목에 대해 child_ added를 트리거합니다. point.

Firebase용 Cloud Functions:

이 코드를 백그라운드에서 주기적으로 실행하려면 Cloud Functions를 사용하여 다음을 수행할 수 있습니다. Firebase:

exports.deleteOldItems = functions.database.ref('/path/to/items/{pushId}')
.onWrite((change, context) => {
  var ref = change.after.ref.parent;
  var now = Date.now();
  var cutoff = now - 2 * 60 * 60 * 1000;
  var oldItemsQuery = ref.orderByChild('timestamp').endAt(cutoff);

  return oldItemsQuery.once('value', function(snapshot) {
    var updates = {};
    snapshot.forEach(function(child) {
      updates[child.key] = null;
    });
    return ref.update(updates);
  });
});

참고:

  • 이 함수는 /path/to/items에 데이터가 기록될 때마다 트리거되며, 충족하는 하위 노드만 삭제합니다. 시간 기준.
  • 코드는 함수 샘플 저장소에서도 사용할 수 있습니다. 편리합니다.

위 내용은 Firebase에서 2시간이 지난 데이터 삭제를 자동화하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.