Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. bilgi
Sürüm: 2.0.2
Cloud Firestore veritabanında veri oluşturma, okuma veya silme
Bu içerik, uzantının yapılandırılması ve kullanılmasıyla ilgili referans bilgiler sağlar. Bu uzantıyı bir API proxy'sinden kullanmadan önce şunları yapmanız gerekir:
Verilerinizin depolandığı Firebase konsolunda bir Firebase projesi oluşturun.
Yapılandırma referansını kullanarak uzantıyı eklerken ve yapılandırırken sonuçtaki anahtar JSON dosyasının içeriğini kullanın.
Cloud Firestore hakkında
Cloud Firestore, verileri koleksiyonlarda depolanan belgelerde saklar. Cloud Firestore, belgeye ilk kez veri eklediğinizde koleksiyonları ve belgeleri örtülü olarak oluşturur. Koleksiyon veya doküman oluşturmanız gerekmez.
Cloud Firestore hakkında daha fazla bilgi için Cloud Firestore belgelerindeki Firestore'u kullanmaya başlama bölümüne bakın.
Örnekler
Aşağıdaki örneklerde, ExtensionCallout politikası kullanılarak Cloud Firestore uzantısı işlemleri için desteğin nasıl yapılandırılacağı gösterilmektedir.
Veri ekle
Aşağıdaki ExtensionCallout politikası, freewill@example.com adlı dokümanı users koleksiyonuna ekler. data özelliği, yeni belgenin alanlarını ve değerlerini belirtir.
<?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>
Veri alma
Bu örnekte, ExtensionCallout politikası, users koleksiyonundan freewill@example.com belgesinin değerini alır. Burada, döndürülen sonucun bir nesneye ayrıştırılmış JSON yerine dize olarak JSON olması için <Output> öğesinin parsed özelliği false olarak ayarlanır. Daha fazla bilgi için <Output> öğesi referansına bakın.
<?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>
Aşağıdaki Assign Message politikası, yanıt yükünü atamak için uzantının yanıtını depolayan değişkenin değerini kullanır.
<?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>
Verileri sil
Bu örnekte, ExtensionCallout politikası, users koleksiyonundan lizzie@example.com dokümanını siler.
<?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>
Veri sorgulama
Bu örnekte, ExtensionCallout politikası bir cities koleksiyonunu sorguluyor. Sorgu sonuçları state ve population alanlarına göre filtrelenir. Burada, döndürülen sonucun bir nesneye ayrıştırılmış JSON yerine dize olarak JSON olması için <Output> öğesinin parsed özelliği false olarak ayarlanır. Daha fazla bilgi için <Output> öğesi referansına bakın.
<?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>
Aşağıdaki Assign Message politikası, yanıt yükünü atamak için uzantının yanıtını depolayan değişkenin değerini kullanır.
<?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>
İşlemler
deleteDocument
Koleksiyondan tek bir dokümanı siler.
İstek parametreleri
<Input><![CDATA[{
"colName" : "firestore-collection-name",
"docName" : "firestore-document-name"
}]]></Input>
| Parametre | Açıklama | Tür | Varsayılan | Zorunlu |
|---|---|---|---|---|
| colName | Silinecek belgeyi içeren koleksiyonun adı. | Dize | Yok. | Evet. |
| docName | Silinecek dokümanın adı. | Dize | Yok. | Evet. |
Yanıt
Yok.
getDocument
Tek bir belgenin içeriğini alır.
İstek parametreleri
<Input><![CDATA[{
"colName" : "firestore-collection-name",
"docName" : "firestore-document-name"
}]]></Input>
| Parametre | Açıklama | Tür | Varsayılan | Zorunlu |
|---|---|---|---|---|
| colName | Belgenin alınacağı koleksiyonun adı. | Dize | Yok. | Evet. |
| docName | Alınacak dokümanın adı. | Dize | Yok. | Evet. |
Yanıt
Belgenin içeriğini JSON biçiminde içeren nesne.
sorgu
Bir filtre oluşturan koşulları belirterek bir koleksiyona sorgu gönderir.
Bu işlemin queryArray parametresi, diziler dizisini (veya filtreleme koşulu yoksa boş bir dizi) belirtir. Her iç dizi, bir filtrenin koşulunu belirtir. Birden çok iç dizi, AND operatörüyle birleştirilmiş birden çok koşulu temsil eder.
İç koşul dizisindeki her öğe, koşulun bir bölümünü temsil eder. Bir koşul dizisinde her zaman aşağıdaki üç öğe bulunur:
- Koleksiyon alanını belirten bir sol öğe.
- Operatörü belirten bir orta öğe.
- Koleksiyon alanı değerini belirten bir hak öğesi.
Aşağıdaki örnekte, koleksiyonun state ve population alanlarına göre filtreleme yapmak için iki koşul dizisi belirtilmektedir:
<Input><![CDATA[{
"colName":"cities",
"queryArray":[
["state", "==", "CA"],
["population","<",1000000]
]
}]]></Input>
Çalışma zamanında bu işlem, aşağıdaki gibi bir sorgu olarak yorumlanır:
Eyalet = "CA" ve nüfus < 1000000 olan tüm şehirleri seçin
Birden fazla koşul içeren bir sorgu, Cloud Firestore'da bileşik dizin tarafından desteklenmelidir. Daha fazla bilgi için Cloud Firestore'daki dizin türleri başlıklı makaleyi inceleyin.
İstek parametreleri
Söz dizimi
<Input><![CDATA[{
"colName" : "firestore-collection-name",
"queryArray" : "queryArray": query-condition-array
}]]></Input>
Örnek
Bu örnekte, queryArray parametresi, colName parametresiyle belirtilen cities koleksiyonunun filtreleneceği iki koşulu belirtir.
Birden fazla koşul içeren bir sorgu, Cloud Firestore'da bileşik dizin tarafından desteklenmelidir. Daha fazla bilgi için Cloud Firestore'daki dizin türleri başlıklı makaleyi inceleyin.
<Input><![CDATA[{
"colName":"cities",
"queryArray":[["state", "==", "CA"],["population","<",1000000]]
}]]></Input>
Çalışma zamanında bu işlem, aşağıdaki gibi bir sorgu olarak yorumlanır:
Eyalet = "CA" ve nüfus < 1000000 olan tüm şehirleri seçin
| Parametre | Açıklama | Tür | Varsayılan | Zorunlu |
|---|---|---|---|---|
| colName | Sorgulanacak koleksiyonun adı. | Dize | Yok. | Evet. |
| queryArray | Bir filtrenin bölümlerini birlikte belirten koşul dizileri dizisi. Koşulları atlamak (sonuçları filtrelememek) için boş bir dizi belirtin. | Dizi | Yok. | Evet. |
Yanıt
Belgenin içeriğini JSON biçiminde içeren nesne.
setDocument
Bir dokümanı Cloud Firestore koleksiyonuna kopyalar. Doküman koleksiyonda zaten varsa üzerine yazılır.
İstek parametreleri
<Input><![CDATA[{
"colName" : "firestore-collection-name",
"docName" : "firestore-document-name",
"data" : "data-to-copy"
}]]></Input>
| Parametre | Açıklama | Tür | Varsayılan | Zorunlu |
|---|---|---|---|---|
| colName | Belgenin oluşturulacağı koleksiyonun adı. | Dize | Yok. | Evet. |
| docName | data öğesinin kopyalanacağı dokümanın adı. |
Dize | Yok. | Evet. |
| aktarma | docName içine kopyalanacak veriler. Bu, geçerli bir JSON nesnesi olmalıdır. Diziler desteklenmez. |
Nesne | Yok. | Sıra |
Yanıt
Yok.
Yapılandırma Referansı
Bu uzantıyı API proxy'lerinde kullanılacak şekilde yapılandırıp dağıtırken aşağıdakileri kullanın. Apigee konsolunu kullanarak uzantı yapılandırma adımları için Uzantı ekleme ve yapılandırma başlıklı makaleyi inceleyin.
Sık kullanılan uzantı özellikleri
Aşağıdaki özellikler her uzantı için mevcuttur.
| Mülk | Açıklama | Varsayılan | Zorunlu |
|---|---|---|---|
name |
Uzantının bu yapılandırmasını verdiğiniz ad. | Yok | Evet |
packageName |
Apigee Edge'in sağladığı uzantı paketinin adı. | Yok | Evet |
version |
Uzantıyı yapılandırdığınız uzantı paketinin sürüm numarası. | Yok | Evet |
configuration |
Eklediğiniz uzantıya özgü yapılandırma değeri. Bu uzantı paketinin özellikleri başlıklı makaleyi inceleyin | Yok | Evet |
Bu uzantı paketinin özellikleri
| Mülk | Açıklama | Varsayılan | Zorunlu |
|---|---|---|---|
| firestoreDB | Bu uzantının istekte bulunurken kullanması gereken Cloud Firestore veritabanının URL'si. Bu URL genellikle https://DATABASE_NAME.firebaseio.com biçimindedir. |
Yok. | Evet. |
| giriş bilgileri | Apigee Edge konsoluna girildiğinde, bu, Firebase talimatlarıyla oluşturduğunuz anahtar dosyasının içeriğidir. Yönetim API'si kullanılarak gönderildiğinde, anahtar dosyasından oluşturulan base64 kodlu bir değerdir. | Yok. | Evet. |