Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. bilgi
Sürüm: 1.2.0
Cloud Firestore veritabanında veri oluşturun, mevcut verileri okuyun veya silin.
Bu içerik, bu uzantıyı yapılandırmak ve kullanmak için referans sağlar. Bu uzantıyı bir API proxy'sinden kullanmadan önce şunları yapmanız gerekir:
Firebase konsolunda verilerinizin depolandığı bir Firebase projesi oluşturun.
Uzantıyı yapılandırma referansını kullanarak ekleyip yapılandırırken, elde edilen anahtar JSON dosyasının içeriğini kullanın.
Cloud Firestore hakkında
Cloud Firestore, verileri koleksiyonlarda depolanan dokümanlarda depolar. Cloud Firestore, belgeye ilk kez veri eklediğinizde koleksiyon ve belgeleri gizli olarak oluşturur. Açıkça koleksiyon veya doküman oluşturmanız gerekmez.
Cloud Firestore hakkında genel olarak daha fazla bilgi edinmek için Cloud Firestore belgelerindeki Firestore'u kullanmaya başlama bölümüne bakın.
Sana Özel
Aşağıdaki örneklerde, Extension callout politikası kullanılarak Cloud Firestore uzantı işlemleri için desteğin nasıl yapılandırılacağı gösterilmektedir.
Veri ekle
Aşağıdaki ExtensionExtension politikası, bir users
koleksiyonuna freewill@example.com
adlı bir doküman ekler. data
özelliği, yeni dokümanın 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>
Verileri al
Bu örnekte, ExtensionDestination politikası, freewill@example.com
dokümanının değerini users
koleksiyonundan alır. Burada, <Output>
öğesinin parsed
özelliği false
olarak ayarlanır. Böylece döndürülen sonuç, bir nesneye ayrıştırılan JSON yerine dize olarak JSON olur. 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 Mesaj Ata 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 örnekteki ExtensionDescription politikası, lizzie@example.com
dokümanını users
koleksiyonundan 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, Extension callout politikası bir cities
koleksiyonunu sorgular. Sorgu sonuçları state
ve population
alanlarına göre filtrelenir. Burada, <Output>
öğesinin parsed
özelliği false
olarak ayarlanır. Böylece döndürülen sonuç, bir nesneye ayrıştırılan JSON yerine dize olarak JSON olur. 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 Mesaj Ata 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 | Gerekli |
---|---|---|---|---|
colName | Silinecek dokümanı içeren koleksiyonun adı. | Dize | Yok. | Evet. |
docName | Silinecek dokümanın adı. | Dize | Yok. | Evet. |
Yanıt
Yok.
getDocument
Tek bir dokümanın 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 | Gerekli |
---|---|---|---|---|
colName | Belgenin alınacağı koleksiyonun adı. | Dize | Yok. | Evet. |
docName | Alınacak dokümanın adı. | Dize | Yok. | Evet. |
Yanıt
JSON biçiminde dokümanın içeriğini içeren nesne.
sorgu
Filtre oluşturan koşulları belirterek koleksiyonu sorgular.
Bu işlemin queryArray
parametresi bir dizi dizisi (veya filtreleme koşulu yoksa boş bir dizi) belirtiyor. Her bir iç dizi, bir filtrenin koşulunu belirtir. Birden çok iç dizi, bir AND operatörüyle birleştirilen birden fazla koşulu temsil eder.
Bir iç koşul dizisindeki her öğe, koşulun bir bölümünü temsil eder. Bir koşul dizisi her zaman aşağıdaki üç öğeye sahiptir:
- Koleksiyon alanını belirten sol öğe.
- Operatörü belirten bir orta öğe.
- Koleksiyon alanı değerini belirten sağdaki bir öğe.
Aşağıdaki örnekte, koleksiyonun state
ve population
alanlarına göre filtrelenecek iki koşul dizisi belirtilmiştir:
<Input><![CDATA[{
"colName":"cities",
"queryArray":[
["state", "==", "CA"],
["population","<",1000000]
]
}]]></Input>
Bu işlem, çalışma zamanında aşağıdaki gibi bir sorgu olarak yorumlanır:
Eyalet = "CA" ve nüfusu < 1000000 olan tüm şehirleri seçin
Birden çok koşul içeren sorgular, Cloud Firestore'da bileşik dizin tarafından desteklenmelidir. Daha fazla bilgi için Cloud Firestore'daki dizin türleri bölümünü 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 sorgular, Cloud Firestore'da bileşik dizin tarafından desteklenmelidir. Daha fazla bilgi için Cloud Firestore'daki dizin türleri bölümünü inceleyin.
<Input><![CDATA[{
"colName":"cities",
"queryArray":[["state", "==", "CA"],["population","<",1000000]]
}]]></Input>
Bu işlem, çalışma zamanında aşağıdaki gibi bir sorgu olarak yorumlanır:
Eyalet = "CA" ve nüfusu < 1000000 olan tüm şehirleri seçin
Parametre | Açıklama | Tür | Varsayılan | Gerekli |
---|---|---|---|---|
colName | Sorgulanacak koleksiyonun adı. | Dize | Yok. | Evet. |
queryArray | Birlikte filtrenin bölümlerini belirten koşul dizileri dizisi. Koşulları atlamak için boş bir dizi belirtin (sonuçları filtrelemeyin). | Dizi | Yok. | Evet. |
Yanıt
JSON biçiminde dokümanın içeriğini içeren nesne.
setDocument
Bir dokümanı Cloud Firestore koleksiyonuna kopyalar. Doküman koleksiyonda zaten bulunuyorsa bu işlem dokümanın ü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 | Gerekli |
---|---|---|---|---|
colName | Belgenin oluşturulacağı koleksiyonun adı. | Dize | Yok. | Evet. |
docName | data öğesinin kopyalanacağı dokümanın adı. |
Dize | Yok. | Evet. |
veri | docName içine kopyalanacak veriler. Bu geçerli bir JSON nesnesi olmalıdır. Diziler desteklenmez. |
Nesne | Yok. | Hayır |
Yanıt
Yok.
Yapılandırma Referansı
Bu uzantıyı API proxy'lerinde kullanmak üzere yapılandırırken ve 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 bölümüne bakın.
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
Özellik | Açıklama | Varsayılan | Gerekli |
---|---|---|---|
firestoreDB | Bu uzantının istekte bulunarak kullanılması gereken Cloud Firestore veritabanı URL'si. Bu URL genellikle https://DATABASE_NAME.firebaseio.com biçimini alır. |
Yok. | Evet. |
giriş bilgileri | Burada, Apigee Edge konsoluna girildiğinde Firebase talimatlarıyla oluşturduğunuz anahtar dosyasının içeriği gösterilir. Yönetim API'si ile gönderildiğinde, anahtar dosyasından oluşturulan base64 kodlu bir değerdir. | Yok. | Evet. |