Firebase Management REST API , bir projenin Firebase kaynakları ve Firebase Uygulamaları dahil olmak üzere Firebase projelerinin programlı kurulumunu ve yönetimini sağlar.
Bu genel bakış, şu anda Firebase hizmetlerini kullanmayan mevcut bir Google Cloud projesine Firebase kaynakları ve uygulamaları eklemek için genel iş akışını açıklar.
Aşağıdakileri yapmak istiyorsanız, bu sayfanın belirli bölümlerine atlayabilirsiniz:
- Projenize Firebase hizmetleri ekleyin
- Firebase projenize Firebase Uygulamaları ekleyin
- Firebase projenizi bir Google Analytics hesabına bağlayın
- Projenizin varsayılan konumunu kesinleştirin
Bu sayfadaki herhangi bir adımı uygulamadan önce API'yi etkinleştirdiğinizden emin olun.
Firebase Management API için erişim yönetimi hakkında bilgi için Cloud Identity Access Management (IAM) API belgelerini ziyaret edin.
Sen başlamadan önce
Başlamadan önce, Google Cloud projeniz için Yönetim API'sini etkinleştirmeniz ve erişim jetonunuzu oluşturmanız gerekir .
Google Cloud projeniz için Management REST API'yi etkinleştirin
Henüz yapmadıysanız, Google Cloud projenizle kullanmak için Firebase Management API'yi etkinleştirmeniz gerekir.
- Google API konsolunda Firebase Management API sayfasını açın.
- İstendiğinde, Google Cloud projenizi seçin.
- Firebase Management API sayfasında Etkinleştir'e tıklayın.
API erişim simgenizi oluşturun
Erişim belirtecinizi alan Node.js için bir örnek.
İlk olarak, bir Google Cloud ortamında değilseniz, GOOGLE_APPLICATION_CREDENTIALS
ortam değişkenini hizmet hesabı anahtarınızın yoluna ayarlayın.
Linux veya macOS
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-file.json"
pencereler
PowerShell ile:
$env:GOOGLE_APPLICATION_CREDENTIALS="C:\path\to\your\service-account-file.json"
Ardından, hizmet hesabı kimlik bilgilerinizden bir erişim belirteci almak için Firebase Admin SDK'yı kullanın:
const admin = require('firebase-admin');
function getAccessToken() {
return admin.credential.applicationDefault().getAccessToken()
.then(accessToken => {
return accessToken.access_token;
})
.catch(err => {
console.error('Unable to get access token');
console.error(err);
});
}
Projenizin kaynak adını bulun
Firebase hizmetleri eklemek için kullanılabilen Google Cloud projelerini bulabilirsiniz.
RİCA ETMEK
availableProjects.list
arayın. Bu çağrı için istek gövdesi boş olmalıdır.
Node.js'nin mevcut Google Cloud projelerinin bir listesini istemesi için bir örnek:
const fetch = require('node-fetch');
async function listProjects() {
const accessToken = getAccessToken();
const uri = 'https://firebase.googleapis.com/v1beta1/availableProjects';
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer ' + accessToken,
},
};
try {
const rawResponse = await fetch(uri, options);
const resp = await rawResponse.json();
const projects = resp['projectInfo'];
console.log('Project total: ' + projects.length);
console.log('');
for (let i in projects) {
const project = projects[i];
console.log('Project ' + i);
console.log('ID: ' + project['project']);
console.log('Display Name: ' + project['displayName']);
console.log('');
}
} catch(err) {
console.error(err);
}
}
SONUÇ
Bir availableProjects.list
çağrısından gelen yanıt gövdesi, ProjectInfo
nesnelerinin bir listesini içerir. Proje listesi çok uzunsa, yanıt gövdesi ayrıca projelerin sonraki sayfasını almak için sorgu parametresi olarak kullanabileceğiniz bir nextPageToken
içerir.
İşte availableProjects.list
çağrısının örnek bir yanıt gövdesi:
{
"projectInfo": [
{
"project": "projects/first-cloud-project",
"displayName": "First Cloud Project"
},
{
"project": "projects/second-cloud-project",
"displayName": "Second Cloud Project"
}
]
}
Bu örnek yanıtta, Firebase hizmetlerinin kendilerine eklenebileceği iki Google Cloud projesi vardır. project
alanının bir proje için global olarak benzersiz kaynak adı sağladığını unutmayın.
Projenize Firebase hizmetleri eklemek veya uygulamalar eklemek için availableProjects.list
gelen yanıtta listelenen herhangi bir project
değerini kullanabilirsiniz.
Sonraki bölümde, projects/first-gcp-project
kaynak adını kullanarak Firebase hizmetlerini First Cloud Project
ekleyeceğiz.
Projenize Firebase hizmetleri ekleyin
Google Cloud projeleri, Firebase tarafından sunulan hizmetlerden yararlanabilir. Bu bölümde, mevcut Google Cloud projenize programlı olarak Firebase hizmetlerini nasıl ekleyeceğinizi öğreneceksiniz. Firebase konsolunda mevcut Google Cloud projenize Firebase hizmetleri de ekleyebileceğinizi unutmayın.
RİCA ETMEK
projects.addFirebase
çağırın. Bu çağrı için istek gövdesi boş olmalıdır.
Google Cloud projenize Firebase hizmetleri eklemek için Node.js için bir örnek:
const fetch = require('node-fetch');
async function addFirebase(projectId) {
const accessToken = getAccessToken();
const uri = 'https://firebase.googleapis.com/v1beta1/projects/' + projectId + ':addFirebase';
const options = {
method: 'POST',
// Use a manual access token here since explicit user access token is required.
headers: {
'Authorization': 'Bearer ' + accessToken,
},
};
try {
const rawResponse = await fetch(uri, options);
const resp = await rawResponse.json();
console.log(resp);
} catch(err) {
console.error(err['message']);
}
}
SONUÇ
projects.addFirebase
çağrısının sonucu bir Operation
. Projeniz için Firebase ile ilgili diğer uç noktaları çağırmadan önce işlemin başarılı olması gerekir.
İşlemin başarılı olup olmadığını kontrol etmek için, done
değeri true
olana ve response
FirebaseProject
türünde olana kadar operations.get
çağırabilirsiniz. İşlem başarısız olursa, error
google.rpc.Status
olarak ayarlanır.
İşte bir operations.get
çağrısının yanıt gövdesi:
{
"name": "operations/...",
"done": true,
"response": {
"@type": "type.googleapis.com/google.firebase.service.v1beta1.FirebaseProject",
"projectId": "first-cloud-project",
"projectNumber": "...",
"displayName": "First Cloud Project",
"name": "projects/first-cloud-project",
"resources": {
"hostingSite": "first-cloud-project",
"realtimeDatabaseInstance": "first-cloud-project"
}
}
}
done
true
olduğundan ve response
türü bir FirebaseProject
olduğundan, Google Cloud projesi artık Firebase hizmetlerine sahiptir. Yanıt ayrıca, yeni oluşturduğunuz FirebaseProject
hakkında, projectNumber
ve varsayılan resources
gibi başka yararlı bilgiler de içerir. Operation
tamamlandıktan sonra otomatik olarak silinir.
Projenize Firebase Uygulamaları ekleyin
iOS, Android ve web uygulamaları dahil birçok farklı uygulama bir FirebaseProject
kullanabilir. Bu bölümde, mevcut FirebaseProject
programlı olarak Firebase Uygulamalarını nasıl ekleyeceğinizi öğreneceksiniz. Firebase konsolunda mevcut Firebase projenize Firebase Uygulamaları da ekleyebileceğinizi unutmayın.
Firebase projenize eklemek için bir Firebase Uygulaması türü seçin.
Mevcut Firebase projenize bir Firebase Android Uygulaması ekleyebilirsiniz.
RİCA ETMEK
projects.androidApps.create
öğesini çağırın. İstek gövdenizi nasıl oluşturacağınız aşağıda açıklanmıştır:
Gerekli:
-
packageName
: Android uygulamasının Google Play Geliştirici konsolunda görüneceği şekliyle standart paket adı.
-
İsteğe bağlı, ancak önerilir:
-
displayName
: Uygulamanın kullanıcı tarafından atanan görünen adı. Bu değer, uygulamanızı daha sonra Firebase konsolunda bulmak için kullanışlıdır.
-
Örneğimizin istek gövdesinde packageName
ve displayName
kullanacağız:
{
"displayName": "My Firebase Android App"
"packageName": "com.firebase.android"
}
Node.js'nin Firebase projenize bir Firebase Android Uygulaması eklemesi için bir örnek:
const fetch = require('node-fetch');
async function addAndroidApp(projectId, displayName, packageName) {
const accessToken = getAccessToken();
const uri = 'https://firebase.googleapis.com/v1beta1/projects/' + projectId + '/androidApps';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer ' + accessToken,
},
body: JSON.stringify({
'displayName': displayName,
'packageName': packageName
}),
};
try {
const rawResponse = await fetch(uri, options);
const resp = await rawResponse.json();
console.log(resp);
} catch(err) {
console.error(err['message']);
}
}
SONUÇ
projects.androidApps.create
yapılan çağrının sonucu bir Operation
. Projeniz için Firebase ile ilgili diğer uç noktaları çağırmadan önce işlemin başarılı olması gerekir.
İşlemin başarılı olup olmadığını kontrol etmek için, done
değeri true
olana ve response
AndroidApp
türünde olana kadar operations.get
Operations.get'i çağırabilirsiniz. İşlem başarısız olursa, error
google.rpc.Status
olarak ayarlanır.
İşte bir operations.get
çağrısının yanıt gövdesi:
{
"name": "operations/...",
"done": true,
"response": {
"@type": "type.googleapis.com/google.firebase.service.v1beta1.AndroidApp",
"name": "projects/first-cloud-project/androidApps/...",
"appId": "...",
"displayName": "My Firebase Android App",
"projectId": "first-cloud-project",
"packageName": "com.firebase.android"
}
}
done
true
olduğundan ve response
türü bir AndroidApp
olduğundan, FirebaseProject
artık bir AndroidApp
sahiptir. Yanıt, benzersiz Firebase appId
gibi yeni oluşturduğunuz Firebase Android Uygulamanız hakkında başka yararlı bilgiler de içerir. Operation
tamamlandıktan sonra otomatik olarak silinir.
SHA sertifikaları ekle
Projects.androidApps.sha.create öğesini çağırarak mevcut herhangi bir projects.androidApps.sha.create
Android Uygulamasına SHA sertifikaları ekleyebilirsiniz. Bu yöntem çağrısı için istek gövdesinde boş bir name
alanı olmalıdır. Bu çağrının sonucu, yeni oluşturulmuş bir ShaCertificate
.
projects.androidApps.sha.create
öğesini çağırırken, geçerli bir SHA-1 veya SHA-256 sertifika karması sağlamanız gerekir. İmzalama sertifikanızın SHA karmasını gradle signingReport
komutuyla alabilirsiniz:
./gradlew signingReport
Daha fazla bilgi için Android için Google API'lerini ziyaret edin.
Firebase projenizi bir Google Analytics hesabına bağlayın (İsteğe bağlı)
Mevcut bir Google Analytics hesabını mevcut FirebaseProject
programlı olarak bağlayabilirsiniz. Ayrıca, Proje Ayarlarınızın Entegrasyonlar sekmesinde mevcut Firebase projenizi Google Analytics'e bağlayabileceğinizi unutmayın.
projects.addGoogleAnalytics
çağrısı, analyticsAccountId
veya analyticsPropertyId
olabilen bir analytics_resource
gerektirir:
Belirtilen hesap içinde yeni bir Google Analytics mülkü sağlamak ve yeni mülkü Firebase projenizle ilişkilendirmek için mevcut bir
analyticsAccountId
belirtin.Google Analytics mülkünü Firebase projenizle ilişkilendirmek için mevcut bir
analyticsPropertyId
belirtin.
Google Analytics web sitesinde hem analyticsAccountId
hem de mevcut herhangi bir analyticsPropertyId
bulabilirsiniz.
projects.addGoogleAnalytics
aradığınızda:
İlk kontrol, Google Analytics mülkündeki herhangi bir mevcut veri akışının FirebaseProject'inizdeki mevcut herhangi bir
FirebaseProject
Uygulamasına karşılık gelip gelmediğini belirler (veri akışıyla ilişkilipackageName
veyabundleId
göre). Ardından, uygun olduğu şekilde, veri akışları ve uygulamalar birbirine bağlanır. Bu otomatik bağlantının yalnızca Android Uygulamaları ve iOS Uygulamaları için geçerli olduğunu unutmayın.Firebase Uygulamalarınız için karşılık gelen veri akışları bulunmazsa, Firebase Uygulamalarınızın her biri için Google Analytics mülkünde yeni veri akışları sağlanır. Daha önce Analytics mülkünüzdeki bir veri akışıyla ilişkilendirilmiş olsa bile, bir Web Uygulaması için her zaman yeni bir veri akışının sağlandığını unutmayın.
Analytics belgelerinde Google Analytics hesaplarının hiyerarşisi ve yapısı hakkında daha fazla bilgi edinin.
RİCA ETMEK
projects.addGoogleAnalytics
arayın.
project.addGoogleAnalytics
için örnek çağrımızın istek gövdesinde, Google Analytics hesabı analyticsAccountId
belirteceğiz. Bu çağrı, yeni bir Google Analytics mülkü sağlar ve yeni mülkü FirebaseProject
ile ilişkilendirir.
{
"analyticsAccountId": "<your-google-analytics-account-id>"
}
Node.js'nin bir Firebase projesini bir Google Analytics hesabına bağlaması için bir örnek:
const fetch = require('node-fetch');
async function addGoogleAnalytics(projectId, analyticsAccountId) {
const accessToken = getAccessToken();
const uri = 'https://firebase.googleapis.com/v1beta1/projects/' + projectId + ':addGoogleAnalytics';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer ' + accessToken,
},
body: JSON.stringify({
'analyticsAccountId': analyticsAccountId
}),
};
try {
const rawResponse = await fetch(uri, options);
const resp = await rawResponse.json();
console.log(resp);
} catch(err) {
console.error(err['message']);
}
}
SONUÇ
Operation
projects.addGoogleAnalytics
Projeniz için Firebase ile ilgili diğer uç noktaları çağırmadan önce işlemin başarılı olması gerekir.
İşlemin başarılı olup olmadığını kontrol etmek için, done
değeri true
olana ve response
analyticsDetails
türünden olana kadar operations.get
çağırabilirsiniz. İşlem başarısız olursa, error
google.rpc.Status
olarak ayarlanır.
İşte bir operations.get
çağrısının yanıt gövdesi:
{
"name": "operations/...",
"none": true,
"response": {
"@type": "type.googleapis.com/google.firebase.service.v1beta1.AnalyticsDetails",
"analyticsProperty": [
{
"id": "...",
"displayName": "..."
}
],
"streamMappings": [
{
"app": "...",
"streamId": "...",
"measurementId": "..."
}
]
}
}
done
true olduğundan ve response
türü analyticsDetails
olduğundan, FirebaseProject
artık belirtilen Google Analytics hesabına bağlıdır. Operation
tamamlandıktan sonra otomatik olarak silinir.
Projenizin varsayılan konumunu kesinleştirin (Opsiyonel)
Firebase projeniz Cloud Firestore, Cloud Storage veya bir App Engine uygulaması kullanacaksa projeniz için varsayılan Google Cloud Platform (GCP) kaynak konumunu programlı olarak sonlandırabilirsiniz. Firebase konsolunda da bir konum seçebileceğinizi unutmayın.
Bu konumu ayarlamadan önce, projeniz için hangi konumun en iyi olduğu hakkında bilgi için Projeniz için konumları seçin'e bakın. Projeniz bir Google Cloud kuruluşunun parçasıysa, kuruluş politikalarınız projeniz için hangi konumların geçerli olduğunu kısıtlayabileceğinden , projects.availableLocations
için geçerli konumların bir listesini döndürmek için project.availableLocations'ı da aramalısınız.
Bu defaultLocation.finalize
yönteminin çağrılması, istek gövdesinde sağladığınız locationId
bulunan varsayılan bir Cloud Storage paketine sahip bir App Engine uygulaması oluşturur.
Project
zaten bir App Engine uygulaması varsa veya bu defaultLocation.finalize
yöntemi daha önce çağrıldıysa, varsayılan GCP kaynak konumu zaten belirtilmiş olabilir.
RİCA ETMEK
projects.defaultLocation.finalize
öğesini çağırın. İstek gövdenizi nasıl oluşturacağınız aşağıda açıklanmıştır:
Gerekli:
-
locationId
: Cloud Firestore veya Cloud Storage gibi bir konum ayarı gerektiren GCP hizmetleri için verilerinizin depolandığı konum.
-
{
"locationId": "us-west2"
}
Node.js'nin projenizin varsayılan konumunu tamamlaması için bir örnek:
const fetch = require('node-fetch');
async function finalizeProjectLocation(projectId, locationId) {
const accessToken = getAccessToken();
const uri = 'https://firebase.googleapis.com/v1beta1/projects/' + projectId + '/defaultLocation:finalize';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer ' + accessToken,
},
body: JSON.stringify({
'locationId': locationId
}),
};
try {
const rawResponse = await fetch(uri, options);
const resp = await rawResponse.json();
console.log(resp);
} catch(err) {
console.error(err['message']);
}
}
SONUÇ
projects.defaultLocation.finalize
çağrısının sonucu bir Operation
. Projeniz için Firebase ile ilgili diğer uç noktaları çağırmadan önce işlemin başarılı olması gerekir.
İşlemin başarılı olup olmadığını kontrol etmek için, done
değeri true
olana ve response
google.protobuf.Empty
türünden olana kadar operations.get
Operasyonlar.get'i çağırabilirsiniz. İşlem başarısız olursa, yanıt gövdesi error
google.rpc.Status
türünde olacaktır. Operation
tamamlandıktan sonra otomatik olarak silinir.