programing

하위 값별 Firebase 검색

lastcode 2023. 6. 16. 21:48
반응형

하위 값별 Firebase 검색

Firebase 데이터베이스에 다음과 같은 구조가 있습니다.firebase database

이름, 성 또는 이메일로 사용자를 검색하고 싶지만 위 수준의 사용자 키가 없기 때문에 어떻게 해야 할지 모르겠습니다.사용자 키에 액세스할 수 없도록 관리자 세션을 수행하고 있습니다.

시도해 본 결과:

let usersRef = firebase.database().ref('users');
usersRef.orderByValue().on("value", function(snapshot) {
    console.log(snapshot.val());
    snapshot.forEach(function(data) {
        console.log(data.key);
    });
});

하지만 데이터베이스의 모든 사용자를 불러옵니다.아이디어 있어요?

사용할 수 있습니다.equalTo()가치로 아이를 찾을 수 있습니다.당신의 경우는name:

ref.child('users').orderByChild('name').equalTo('John Doe').on("value", function(snapshot) {
    console.log(snapshot.val());
    snapshot.forEach(function(data) {
        console.log(data.key);
    });
});

의 목적orderByChild()필터링/검색할 필드를 정의합니다. equalTo()문자열, int 및 부울 값을 가져올 수 있습니다.

자동 생성 키와 함께 사용할 수도 있습니다(pushKey) 역시.

여기에서 모든 설명서를 찾을 수 있습니다.

사용 시 불쾌한 놀라움을 방지하기 위한 경고orderByChild그리고.equalTo데이터에 인덱스를 추가하는 것을 잊지 마십시오(여기에 문서가 있습니다).

그렇게 하지 않으면 모든 노드가 다운로드되고 필터링되어 데이터베이스가 증가하면 매우 비싸질 수 있습니다.

v9 버전은 다음과 같습니다.

import { 
   getDatabase, ref, query, 
   orderByChild, get, equalTo,
} from "firebase/database";

const db = getDatabase();
const usersRef = query(ref(db, `users`), ...[orderByChild("name"), equalTo("John Doe")]);
const snapshot = await get(usersRef);
const data = snapshot.val();

언급URL : https://stackoverflow.com/questions/40471284/firebase-search-by-child-value

반응형