<ph type="x-smartling-placeholder"></ph>
현재 Apigee Edge 문서를 보고 있습니다.
Apigee X 문서. 정보
<ph type="x-smartling-placeholder">
버전: 1.2.0
Cloud Firestore 데이터베이스에서 데이터를 만들거나 읽거나 삭제합니다.
이 콘텐츠는 이 확장 프로그램을 구성하고 사용하기 위한 참조를 제공합니다. API 프록시에서 이 확장 프로그램을 사용하려면 먼저 다음 작업을 수행해야 합니다.
데이터가 저장되는 Firebase Console에서 Firebase 프로젝트를 만듭니다.
Cloud Firestore 정보
Cloud Firestore는 컬렉션에 저장되는 문서에 데이터를 저장합니다. 문서에 데이터를 처음 추가하면 Cloud Firestore에서 암시적으로 컬렉션과 문서를 만듭니다. 컬렉션이나 문서를 명시적으로 만들 필요가 없습니다.
Cloud Firestore에 관한 일반적인 정보는 Cloud Firestore 문서의 Firestore 시작하기를 참조하세요.
샘플
다음 예는 Extension콜아웃 정책을 사용하여 Cloud Firestore 확장 프로그램 작업 지원을 구성하는 방법을 보여줍니다.
데이터 추가
다음 확장 콜아웃 정책은 users
컬렉션에 freewill@example.com
문서를 추가합니다. data
속성은 새 문서의 필드와 값을 지정합니다.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Add-User-Data">
<DisplayName>Add User Data</DisplayName>
<Connector>my-cloud-firestore-extension</Connector>
<Action>setDocument</Action>
<Input><![CDATA[{
"colName" : "users",
"docName" : "freewill@example.com",
"data" : {
"firstName": "Will",
"lastName": "Witman",
"address": "270-8243 Tempor St.",
"city": "Fort Worth",
"region": "TX",
"postalCode": "86519",
"email": "freewill@example.com",
"username": "freewill444"
}
}]]></Input>
</ConnectorCallout>
데이터 가져오기
이 예에서 확장 콜아웃 정책은 users
컬렉션에서 freewill@example.com
문서의 값을 가져옵니다. 여기서 <Output>
요소의 parsed
속성은 false
로 설정되므로 반환된 결과가 객체로 파싱된 JSON이 아닌 문자열 형식의 JSON이 됩니다. 자세한 내용은 <Output>
요소 참조를 참고하세요.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Get-User-Data">
<DisplayName>Get User Data</DisplayName>
<Connector>straut-cloud-firestore-extension</Connector>
<Action>getDocument</Action>
<Input><![CDATA[{
"colName" : "users",
"docName" : "freewill@example.com"
}]]></Input>
<Output parsed="false">firestore.userdata.retrieved</Output>
</ConnectorCallout>
다음 Assign Message(메시지 할당) 정책은 확장 프로그램의 응답을 저장하는 변수 값을 사용하여 응답 페이로드를 할당합니다.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage name="CopyUserDataToResponse">
<DisplayName>Copy User Data To Response</DisplayName>
<AssignTo type="response" createNew="false"/>
<Set>
<Payload contentType="application/json">{firestore.userdata.retrieved}</Payload>
</Set>
</AssignMessage>
데이터 삭제
이 예에서 Extension콜아웃 정책은 users
컬렉션에서 lizzie@example.com
문서를 삭제합니다.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Delete-User-Data">
<DisplayName>Delete User Data</DisplayName>
<Connector>my-cloud-firestore-extension</Connector>
<Action>deleteDocument</Action>
<Input><![CDATA[{
"colName" : "users",
"docName" : "lizzie@example.com"
}]]></Input>
</ConnectorCallout>
데이터 쿼리
이 예에서 확장 콜아웃 정책은 cities
컬렉션을 쿼리합니다. 쿼리 결과는 state
및 population
필드를 기준으로 필터링됩니다. 여기서 <Output>
요소의 parsed
속성은 false
로 설정되므로 반환된 결과가 객체로 파싱된 JSON이 아닌 문자열 형식의 JSON이 됩니다. 자세한 내용은 <Output>
요소 참조를 참고하세요.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Query-City-Data">
<DisplayName>Query City Data</DisplayName>
<Connector>cloud-firestore-extension</Connector>
<Action>query</Action>
<Input><![CDATA[{
"colName":"cities",
"queryArray":[
["state", "==", "CA"],
["population","<",1000000]
]
}]]></Input>
<Output parsed="false">compound-query-output</Output>
</ConnectorCallout>
다음 Assign Message(메시지 할당) 정책은 확장 프로그램의 응답을 저장하는 변수 값을 사용하여 응답 페이로드를 할당합니다.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage name="CopyQueryResultsToResponse">
<DisplayName>Copy Query Results To Response</DisplayName>
<AssignTo type="response" createNew="false"/>
<Set>
<Payload contentType="application/json">{firestore.querydata.retrieved}</Payload>
</Set>
</AssignMessage>
작업
<ph type="x-smartling-placeholder">
deleteDocument
컬렉션에서 단일 문서를 삭제합니다.
요청 매개변수
<Input><![CDATA[{
"colName" : "firestore-collection-name",
"docName" : "firestore-document-name"
}]]></Input>
매개변수 | 설명 | 유형 | 기본값 | 필수 |
---|---|---|---|---|
colName | 삭제할 문서가 포함된 컬렉션의 이름입니다. | 문자열 | 없음 | 예. |
docName | 삭제할 문서의 이름입니다. | 문자열 | 없음 | 예. |
응답
없음
getDocument
단일 문서의 콘텐츠를 검색합니다.
요청 매개변수
<Input><![CDATA[{
"colName" : "firestore-collection-name",
"docName" : "firestore-document-name"
}]]></Input>
매개변수 | 설명 | 유형 | 기본값 | 필수 |
---|---|---|---|---|
colName | 문서를 검색할 컬렉션의 이름입니다. | 문자열 | 없음 | 예. |
docName | 검색할 문서의 이름입니다. | 문자열 | 없음 | 예. |
응답
JSON 형식의 문서 콘텐츠를 포함하는 객체입니다.
검색어
필터를 구성하는 조건을 지정하여 컬렉션을 쿼리합니다.
이 작업의 queryArray
매개변수는 배열의 배열을 지정합니다 (필터링 조건이 없는 경우 빈 배열). 각 내부 배열은 필터의 조건을 지정합니다. 여러 개의 내부 배열은 AND 연산자로 결합된 여러 조건을 나타냅니다.
내부 조건 배열의 각 요소는 조건의 일부를 나타냅니다. 조건 배열에는 항상 다음 세 가지 요소가 있습니다.
- 컬렉션 필드를 지정하는 왼쪽 요소.
- 연산자를 지정하는 중간 요소입니다.
- 컬렉션 필드 값을 지정하는 오른쪽 요소.
다음 예시에서는 컬렉션의 state
및 population
필드를 기준으로 필터링할 두 개의 조건 배열을 지정합니다.
<Input><![CDATA[{
"colName":"cities",
"queryArray":[
["state", "==", "CA"],
["population","<",1000000]
]
}]]></Input>
런타임 시 이 작업은 다음과 같은 쿼리로 해석됩니다.
state = 'CA'인 도시를 모두 선택하세요. 및 인구 < 1000000개
여러 조건이 포함된 쿼리는 Cloud Firestore에서 복합 색인으로 지원되어야 합니다. 자세한 내용은 Cloud Firestore의 색인 유형을 참조하세요.
요청 매개변수
구문
<Input><![CDATA[{
"colName" : "firestore-collection-name",
"queryArray" : "queryArray": query-condition-array
}]]></Input>
예
이 예시에서 queryArray
매개변수는 colName
매개변수로 지정된 cities
컬렉션을 필터링할 두 조건을 지정합니다.
여러 조건이 포함된 쿼리는 Cloud Firestore에서 복합 색인으로 지원되어야 합니다. 자세한 내용은 Cloud Firestore의 색인 유형을 참조하세요.
<Input><![CDATA[{
"colName":"cities",
"queryArray":[["state", "==", "CA"],["population","<",1000000]]
}]]></Input>
런타임 시 이 작업은 다음과 같은 쿼리로 해석됩니다.
state = 'CA'인 도시를 모두 선택하세요. 및 인구 < 1000000개
매개변수 | 설명 | 유형 | 기본값 | 필수 |
---|---|---|---|---|
colName | 쿼리할 컬렉션의 이름입니다. | 문자열 | 없음 | 예. |
queryArray | 필터의 부분을 함께 지정하는 조건 배열의 배열입니다. 조건을 생략하려면 빈 배열을 지정합니다 (결과를 필터링하지 않음). | 배열 | 없음 | 예. |
응답
JSON 형식의 문서 콘텐츠를 포함하는 객체입니다.
setDocument
문서를 Cloud Firestore 컬렉션에 복사합니다. 컬렉션에 문서가 이미 있는 경우 해당 문서를 덮어씁니다.
요청 매개변수
<Input><![CDATA[{
"colName" : "firestore-collection-name",
"docName" : "firestore-document-name",
"data" : "data-to-copy"
}]]></Input>
매개변수 | 설명 | 유형 | 기본값 | 필수 |
---|---|---|---|---|
colName | 문서를 만들 컬렉션의 이름입니다. | 문자열 | 없음 | 예. |
docName | data 을(를) 복사해야 하는 문서의 이름입니다. |
문자열 | 없음 | 예. |
데이터 | docName 에 복사할 데이터입니다. 유효한 JSON 객체여야 합니다. 배열은 지원되지 않습니다. |
객체 | 없음 | 아니요. |
응답
없음
구성 참조
API 프록시에서 사용하기 위해 이 확장 프로그램을 구성하고 배포할 때 다음을 사용하세요. Apigee 콘솔을 사용하여 확장 프로그램을 구성하는 단계는 확장 프로그램 추가 및 구성을 참조하세요.
일반적인 확장 속성
모든 확장 프로그램에는 다음과 같은 속성이 있습니다.
속성 | 설명 | 기본 | 필수 |
---|---|---|---|
name |
확장 프로그램의 구성에 지정할 이름입니다. | 없음 | 지원됨 |
packageName |
Apigee Edge에서 제공하는 확장 프로그램 패키지 이름입니다. | 없음 | 지원됨 |
version |
확장 프로그램을 구성하는 확장 프로그램 패키지의 버전 번호입니다. | 없음 | 지원됨 |
configuration |
추가하는 확장 프로그램 관련 구성 값입니다. 이 확장 프로그램 속성의 속성을 참조하세요. | 없음 | 지원됨 |
이 확장 프로그램의 속성
속성 | 설명 | 기본값 | 필수 |
---|---|---|---|
firestoreDB | 이 확장 프로그램이 요청을 실행할 때 사용해야 하는 Cloud Firestore 데이터베이스의 URL입니다. 이 URL은 보통 https://DATABASE_NAME.firebaseio.com 형식입니다. |
없음 | 예. |
사용자 인증 정보 | Apigee Edge 콘솔에 입력하면 Firebase 안내에 따라 생성한 키 파일의 콘텐츠입니다. 관리 API를 통해 전송될 때는 키 파일에서 생성되는 base64 인코딩 값입니다. | 없음 | 예. |