실시간 데이터베이스 : Firebase Cloud Functions에서 값의 모든 인스턴스를 null로 설정

비어 있는

userID를 null로 변경하여 데이터베이스의 여러 게시 키에 연결된 특정 사용자 ID의 모든 값을 지우고 싶습니다. userID는 내 데이터베이스의 posts / ivies / userIDs 경로에있는 post 키에 연결됩니다. 다음은 데이터베이스의 모습입니다.

데이터베이스 구조

그래서 다음 for 루프를 실행하여 userID를 필터링하고 null로 설정하기로 결정했습니다.

exports.wipeData = functions.https.onRequest(async (req, res) => {
 const original = 'ppPXA8MvaSRVbmksof0ByOzTxJ92';
    const snapshot = await admin.database().ref('/posts/ivies/userIDs/');
    console.log((snapshot));

    for (let value in snapshot.val) {
      if (value == original) {
      snapshot.val.set("null")
      }
      else {
        console.log(value)
      }
    }

    res.redirect(303, snapshot.ref.toString());

// [END adminSdkPush]
});

이 함수는 배포 및 실행되지만 예상대로 'ppPXA8MvaSRVbmksof0ByOzTxJ92'를 'null'로 변경하지 않습니다. 도와 주셔서 감사합니다.

프랭크 반 푸 펠렌

일반적인 접근 방식은 괜찮아 보이지만 거기에 몇 가지 버그가 있습니다.

이것은 더 잘 작동합니다.

exports.wipeData = functions.https.onRequest(async (req, res) => {
  const original = 'ppPXA8MvaSRVbmksof0ByOzTxJ92';
  const ref = admin.database().ref('/posts/ivies/userIDs/');
  const query = ref.orderByValue().equalTo(original);

  const results = await query.once('value');
  const updates = {};
  results.forEach((snapshot) => {
    updates[snapshot.key] = null;
  });

  await ref.update(updates);

  res.status(200).send(JSON.stringify(updates));
})

주요 변경 사항 :

  • 귀하의 snapshot데이터베이스에서 읽기하지 않는 것처럼 변수는 데이터가 포함되어 아직 없습니다. once('value')읽어 내 코드가 수행한다.
  • 이 코드는 쿼리를 사용하여 올바른 값을 가진 노드 만 선택합니다. 사용자 수가 증가하면 데이터베이스로드 (및 비용)가 크게 감소합니다.
  • 이 코드는 먼저 모든 업데이트를 단일 개체로 수집 한 다음 한 번의 호출로 데이터베이스에 보냅니다.
  • await에서는 await ref.update(updates)이 데이터베이스 쓰기가 완료되면 리디렉션 만 실행이 보장되므로, 아마 주요 수정 사항입니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

실시간 데이터베이스의 단일 목록보기에서 동시에 모든 하위 항목의 세부 정보를 가져 오는 방법 Firebase

분류에서Dev

Android Firebase-Firebase 실시간 데이터베이스에서 특정 값 검색

분류에서Dev

Cloud Functions를 사용하여 실시간 데이터베이스에서 발생하는 모든 UID 삭제

분류에서Dev

Firebase 실시간 데이터베이스의 모든 레코드에 추가 필드 추가

분류에서Dev

Google Sheets 스크립트에서 Firebase 실시간 데이터베이스에 표시된 값 재정렬

분류에서Dev

Firebase에서 실시간 데이터베이스의 데이터 표시

분류에서Dev

Firebase Cloud Functions에서 데이터베이스 개체의 배열 값 일치

분류에서Dev

Firebase 실시간 데이터베이스에서 특정 데이터 읽기

분류에서Dev

Swift에서 Firebase 실시간 데이터베이스 데이터 정렬

분류에서Dev

Firebase 실시간 데이터베이스에 텍스트 데이터 업로드

분류에서Dev

Firebase : 실시간 데이터베이스에서 Int로 데이터 검색

분류에서Dev

Firebase 실시간 데이터베이스-액세스 노드를 기반으로 여러 .on () 리스너 설정

분류에서Dev

Firebase 데이터베이스, auth uid를 문서의 기본 ID로 설정

분류에서Dev

Firebase 데이터베이스의 모든 하위 데이터에 값을 설정하는 방법은 무엇입니까?

분류에서Dev

Firebase 실시간 데이터베이스 자바 스크립트에서 모든 키 가져 오기

분류에서Dev

Firebase 실시간 데이터베이스에 데이터를 추가 할 때마다 모든 이전 데이터와 함께 인쇄됩니다.

분류에서Dev

미래 날짜 / 시간을 기준으로 Firebase 실시간 데이터베이스에서 데이터를 정렬하는 방법

분류에서Dev

Flutter에서 가장 가까운 n 개의 위치 찾기 : Cloud Firestore 및 Firebase 실시간 데이터베이스와 결합 된 로컬 데이터베이스 (Sqlite)

분류에서Dev

Flutter : StreamBuilder의 항목 (Firebase 실시간 데이터베이스 사용)이 무작위로 정렬됩니다.

분류에서Dev

Android 디버그 APK 버전에서 Firebase 실시간 데이터베이스가 모든 값을 반환하지 않음

분류에서Dev

Google Cloud Functions에서 실시간 데이터베이스 원자 업데이트

분류에서Dev

Firebase 실시간 데이터베이스에서 numChildren () 함수의 확장 성

분류에서Dev

Firebase 실시간 데이터베이스 규칙 시뮬레이터의 Null 데이터

분류에서Dev

서로 보이지 않는 두 호스트의 데이터베이스간에 Oracle 데이터베이스 링크를 설정합니다.

분류에서Dev

데이터베이스의 모든 테이블에서 날짜 / 시간 값 업데이트

분류에서Dev

Google Pub / Sub에서 Firebase 실시간 데이터베이스로 데이터를 보내는 방법

분류에서Dev

Java에서 자동 증분으로 데이터를 나열하는 Firebase 실시간 데이터베이스

분류에서Dev

Flutter의 실시간 데이터베이스에서 특정 데이터 값 가져 오기

분류에서Dev

데이터베이스에서 검색된 값을 Android의 등급 표시 줄에 문자열로 설정

Related 관련 기사

  1. 1

    실시간 데이터베이스의 단일 목록보기에서 동시에 모든 하위 항목의 세부 정보를 가져 오는 방법 Firebase

  2. 2

    Android Firebase-Firebase 실시간 데이터베이스에서 특정 값 검색

  3. 3

    Cloud Functions를 사용하여 실시간 데이터베이스에서 발생하는 모든 UID 삭제

  4. 4

    Firebase 실시간 데이터베이스의 모든 레코드에 추가 필드 추가

  5. 5

    Google Sheets 스크립트에서 Firebase 실시간 데이터베이스에 표시된 값 재정렬

  6. 6

    Firebase에서 실시간 데이터베이스의 데이터 표시

  7. 7

    Firebase Cloud Functions에서 데이터베이스 개체의 배열 값 일치

  8. 8

    Firebase 실시간 데이터베이스에서 특정 데이터 읽기

  9. 9

    Swift에서 Firebase 실시간 데이터베이스 데이터 정렬

  10. 10

    Firebase 실시간 데이터베이스에 텍스트 데이터 업로드

  11. 11

    Firebase : 실시간 데이터베이스에서 Int로 데이터 검색

  12. 12

    Firebase 실시간 데이터베이스-액세스 노드를 기반으로 여러 .on () 리스너 설정

  13. 13

    Firebase 데이터베이스, auth uid를 문서의 기본 ID로 설정

  14. 14

    Firebase 데이터베이스의 모든 하위 데이터에 값을 설정하는 방법은 무엇입니까?

  15. 15

    Firebase 실시간 데이터베이스 자바 스크립트에서 모든 키 가져 오기

  16. 16

    Firebase 실시간 데이터베이스에 데이터를 추가 할 때마다 모든 이전 데이터와 함께 인쇄됩니다.

  17. 17

    미래 날짜 / 시간을 기준으로 Firebase 실시간 데이터베이스에서 데이터를 정렬하는 방법

  18. 18

    Flutter에서 가장 가까운 n 개의 위치 찾기 : Cloud Firestore 및 Firebase 실시간 데이터베이스와 결합 된 로컬 데이터베이스 (Sqlite)

  19. 19

    Flutter : StreamBuilder의 항목 (Firebase 실시간 데이터베이스 사용)이 무작위로 정렬됩니다.

  20. 20

    Android 디버그 APK 버전에서 Firebase 실시간 데이터베이스가 모든 값을 반환하지 않음

  21. 21

    Google Cloud Functions에서 실시간 데이터베이스 원자 업데이트

  22. 22

    Firebase 실시간 데이터베이스에서 numChildren () 함수의 확장 성

  23. 23

    Firebase 실시간 데이터베이스 규칙 시뮬레이터의 Null 데이터

  24. 24

    서로 보이지 않는 두 호스트의 데이터베이스간에 Oracle 데이터베이스 링크를 설정합니다.

  25. 25

    데이터베이스의 모든 테이블에서 날짜 / 시간 값 업데이트

  26. 26

    Google Pub / Sub에서 Firebase 실시간 데이터베이스로 데이터를 보내는 방법

  27. 27

    Java에서 자동 증분으로 데이터를 나열하는 Firebase 실시간 데이터베이스

  28. 28

    Flutter의 실시간 데이터베이스에서 특정 데이터 값 가져 오기

  29. 29

    데이터베이스에서 검색된 값을 Android의 등급 표시 줄에 문자열로 설정

뜨겁다태그

보관