Cloud Firestore에서 하위 컬렉션 이름에 액세스
문서의 하위 컬렉션을 나열하는 것은 Cloud Firestore의 계층 구조에 저장된 데이터를 구성하고 탐색하기 위한 일반적인 요구 사항입니다. . 그러나 클라이언트 SDK(웹, iOS 및 Android 포함)에서는 하위 컬렉션의 전체 목록을 직접 검색하는 것이 지원되지 않습니다.
클라이언트 측 제한 사항:
공식 문서에 명시된 대로 "모바일/웹 클라이언트 라이브러리에서는 컬렉션 목록을 검색하는 것이 불가능합니다." 이 디자인 선택은 주로 신뢰할 수 있는 서버 환경에서 수행되는 관리 작업에 대해 하위 컬렉션 이름에 대한 액세스를 제한하여 보안을 강화하는 것을 목표로 합니다.
클라이언트 SDK에서 문서에 액세스하면 하위 컬렉션 이름을 제외한 필드 이름과 값만 반환됩니다. . 예를 들어 다음 코드 조각은 필드 이름만 기록하고 하위 컬렉션 이름은 기록하지 않습니다.
rootRef.doc('aDocument').get() .then(doc => { // only logs [ "someField", "anotherField" ], no collections console.log( Object.keys(doc.data()) ) })
서버측 솔루션:
그러나 서버에서는 Node.js와 같은 측 SDK에서 하위 컬렉션 이름에 액세스하는 것이 지원됩니다. Node.js의 경우 ListCollectionIds 메서드는 문서의 하위 컬렉션 이름을 검색하는 방법을 제공합니다.
var firestore = require('firestore.v1beta1'); var client = firestore.v1beta1({ // optional auth parameters. }); // Iterate over all elements. var formattedParent = client.anyPathPath("[PROJECT]", "[DATABASE]", "[DOCUMENT]", "[ANY_PATH]"); client.listCollectionIds({parent: formattedParent}).then(function(responses) { var resources = responses[0]; for (var i = 0; i < resources.length; ++i) { // doThingsWith(resources[i]) } }) .catch(function(err) { console.error(err); });
이 메서드는 지정된 문서 내의 하위 컬렉션 이름을 나타내는 문자열 배열을 반환합니다.
대체 접근 방식:
다음에 직접 액세스하는 경우 하위 컬렉션 이름은 클라이언트 측 환경에서 매우 중요합니다. 하위 컬렉션 이름이 문서 구조에서 논리적으로 추론되거나 파생될 수 있도록 데이터를 재구성하는 것을 고려하십시오. 이 접근 방식을 사용하면 제한 사항을 원활하게 해결할 수 있습니다.
위 내용은 Cloud Firestore에서 하위 컬렉션 이름 목록을 어떻게 검색할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!