Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. info
Sürüm: 2.0.0
Cloud Firestore veritabanında veri oluşturma, okuma veya silme
Bu içerikte, bu uzantıyı yapılandırma ve kullanmayla ilgili referanslar sağlanmaktadır. Bu uzantıyı bir API proxy'sinden kullanmadan önce:
Verilerinizin depolandığı Firebase konsolunda bir Firebase projesi oluşturun.
Yapılandırma referansını kullanarak uzantıyı 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 belgelerde saklar. Cloud Firestore, belgeye ilk kez veri eklediğinizde koleksiyonları ve belgeleri dolaylı olarak oluşturur. Koleksiyon veya doküman oluşturmanız gerekmez.
Cloud Firestore hakkında genel bilgi edinmek için Cloud Firestore dokümanlarında Firestore'u kullanmaya başlama başlıklı makaleyi inceleyin.
Örnekler
Aşağıdaki örneklerde, ExtensionCallout 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 ExtensionCallout politikası, users
koleksiyonuna freewill@example.com
adlı bir doküman ekler. data
mülkü, 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>
Veri alma
Bu örnekte ExtensionCallout politikası, users
koleksiyonundan freewill@example.com
belgesinin değerini alır. Burada, <Output>
öğesinin parsed
özelliği false
olarak ayarlanmıştır. Böylece döndürülen sonuç, nesneye ayrıştırılmış JSON yerine JSON dizesi 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ü 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
koleksiyonundaki 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 sorguladı. Sorgu sonuçları state
ve population
alanlarına göre filtrelenir. Burada, <Output>
öğesinin parsed
özelliği false
olarak ayarlanmıştır. Böylece döndürülen sonuç, nesneye ayrıştırılmış JSON yerine JSON dizesi 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ü 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 dokümanın içeriğini getirir.
İ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
Dokümanın içeriğini JSON biçiminde içeren nesne.
sorgu
Filtre oluşturan koşulları belirterek bir koleksiyonu sorgulayan işlevdir.
Bu işlemin queryArray
parametresi, bir dizi dizisi (veya filtreleme koşulu olmayan boş bir dizi) belirtir. Her iç dizi, bir filtrenin koşulunu belirtir. Birden fazla iç dizi, AND operatörüyle birleştirilen birden fazla koşulu temsil eder.
Dahili koşul dizisindeki her öğe, koşulun bir bölümünü temsil eder. Koşul dizisi her zaman aşağıdaki üç öğeyi içerir:
- Koleksiyon alanını belirten bir sol öğe.
- Operatörü belirten bir orta öğe.
- Koleksiyon alanı değerini belirten bir sağ öğe.
Aşağıdaki örnekte, koleksiyonun state
ve population
alanlarına göre filtrelenecek iki koşul dizisi belirtilmektedir:
<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:
state = "CA" ve population < 1000000 olan tüm şehirleri seçin
Birden fazla koşul içeren bir sorgu, Cloud Firestore'da bir 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
parametresi tarafından belirtilen cities
koleksiyonunun filtreleneceği iki koşulu belirtir.
Birden fazla koşul içeren bir sorgu, Cloud Firestore'da bir 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>
Bu işlem, çalışma zamanında aşağıdaki gibi bir sorgu olarak yorumlanır:
state = "CA" ve population < 1000000 olan tüm şehirleri seçin
Parametre | Açıklama | Tür | Varsayılan | Zorunlu |
---|---|---|---|---|
colName | Sorgulanacak koleksiyonun adı. | Dize | Yok. | Evet. |
queryArray | Birlikte bir filtrenin bölümlerini belirten koşul dizileri dizisi. Koşulları (sonuçları filtrelemeyi değil) atlamak için boş bir dizi belirtin. | Dizi | Yok. | Evet. |
Yanıt
Dokümanın içeriğini JSON biçiminde içeren nesne.
setDocument
Bir dokümanı Cloud Firestore koleksiyonuna kopyalar. Doküman koleksiyonda zaten mevcutsa ü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 'e kopyalanacak veriler. Bu, geçerli bir JSON nesnesi olmalıdır. Dizeler desteklenmez. |
Nesne | Yok. | Sıra |
Yanıt
Yok.
Yapılandırma Referansı
Bu uzantıyı API proxy'lerinde kullanılmak üzere yapılandırırken ve dağıtırken aşağıdakileri kullanın. Apigee konsolunu kullanarak bir uzantıyı yapılandırma adımları için Uzantı ekleme ve yapılandırma başlıklı makaleyi inceleyin.
Ortak 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ı paketine ait özellikler
Mülk | Açıklama | Varsayılan | Zorunlu |
---|---|---|---|
firestoreDB | Bu uzantının istek gönderirken 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, Firebase talimatlarıyla oluşturduğunuz anahtar dosyasının içeriğidir. Yönetim API'si üzerinden gönderildiğinde, anahtar dosyasından oluşturulan base64 kodlu bir değerdir. | Yok. | Evet. |