Firebase Management REST API, projenin Firebase kaynakları ve Firebase uygulamaları da dahil olmak üzere Firebase projelerinin programatik olarak ayarlanmasını ve yönetilmesini sağlar.
Bu genel bakışta, henüz Firebase hizmetlerini kullanmayan mevcut bir Google Cloud projesine Firebase kaynakları ve uygulamaları eklemek için kullanılan genel iş akışı açıklanmaktadır.
Aşağıdakileri yapmak istiyorsanız bu sayfanın belirli bölümlerine atlayabilirsiniz:
- Projenize Firebase hizmetlerini ekleyin
- Firebase projenize Firebase uygulamaları ekleme
- Firebase projenizi bir Google Analytics hesabına bağlama
Bu sayfadaki adımları uygulamadan önce API'yi etkinleştirdiğinizden emin olun.
Firebase Management API erişim yönetimi hakkında bilgi edinmek için Cloud Identity Access Management (IAM) API belgelerini inceleyin.
Başlamadan önce
Başlamadan önce Google Cloud projeniz için Management API'yi 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 projenizde kullanmak için Firebase Management API'yi etkinleştirmeniz gerekir.
- Google API'leri konsolunda Firebase Management API sayfasını açın.
- İstendiğinde Google Cloud projenizi seçin.
- Firebase Management API sayfasında Etkinleştir'i tıklayın.
API erişim jetonunuzu oluşturma
Aşağıda, erişim jetonunuzu alan Node.js örneği verilmiştir.
Öncelikle, 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"
Windows
Powerpoint ile:
$env:GOOGLE_APPLICATION_CREDENTIALS="C:\path\to\your\service-account-file.json"
Ardından, hizmet hesabı kimlik bilgilerinizden erişim jetonu 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ı bulma
Firebase hizmetleri eklemek için kullanılabilecek Google Cloud projelerini bulabilirsiniz.
İSTE
availableProjects.list
numaralı telefonu arayın.
Bu çağrının istek metni boş olmalıdır.
Node.js'in mevcut Google Cloudprojelerinin listesini istemek için kullanabileceği örnek bir kod aşağıda verilmiştir:
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Ç
availableProjects.list
çağrısına verilen yanıt gövdesinde ProjectInfo
nesnelerinin listesi bulunur. Proje listesi çok uzunsa yanıt gövdesi, projelerin sonraki sayfasını almak için sorgu parametresi olarak kullanabileceğiniz bir nextPageToken
de içerir.
Aşağıda, availableProjects.list
çağrısının örnek yanıt gövdesi verilmiştir:
{
"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 eklenebilecek iki Google Cloud projesi var. project
alanının, bir projenin dünya genelinde benzersiz kaynak adını sağladığını unutmayın.
availableProjects.list
projesindeki yanıtta listelenen herhangi bir project
değerini kullanarak Firebase hizmetleri ekleyebilir veya projenize uygulama ekleyebilirsiniz.
Sonraki bölümde, projects/first-gcp-project
kaynak adını kullanarak Firebase hizmetlerini First Cloud Project
'e ekleyeceğiz.
Firebase hizmetlerini projenize ekleyin
Google Cloud proje, Firebase'in sunduğu hizmetlerden yararlanabilir. Bu bölümde, Firebase hizmetlerini mevcut Google Cloud projenize programatik olarak nasıl ekleyeceğinizi öğreneceksiniz. Firebase konsolunda mevcut Google Cloud projenize Firebase hizmetleri de ekleyebileceğinizi unutmayın.
İSTE
projects.addFirebase
numaralı telefonu arayın.
Bu çağrının istek gövdesi boş olmalıdır.
Google CloudProjenize Firebase hizmetlerini eklemek için Node.js'de kullanabileceğiniz ö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 olarak Operation
kullanılır. Projeniz için Firebase ile ilgili diğer uç noktaları çağırabilmeniz için 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
değeri FirebaseProject
türüne sahip olana kadar işlem üzerinde operations.get
işlevini çağırabilirsiniz. İşlem başarısız olursa error
değeri google.rpc.Status
olarak ayarlanır.
Bir operations.get
çağrısının yanıt gövdesi aşağıda verilmiştir:
{
"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
türü true
ve response
türü FirebaseProject
olduğundan Google Cloud projesinde artık Firebase hizmetleri var. Yanıt, yeni oluşturulan FirebaseProject
ile ilgili diğer faydalı bilgileri de içerir (ör. projectNumber
ve varsayılan resources
). Operation
, işlem tamamlandıktan sonra otomatik olarak silinir.
Firebase Apps'i projenize ekleyin
iOS, Android ve web uygulamaları da dahil olmak üzere birçok farklı uygulama FirebaseProject
kullanabilir. Bu bölümde, Firebase uygulamalarını mevcut FirebaseProject
uygulamanıza programatik olarak nasıl ekleyeceğinizi öğreneceksiniz. Firebase konsolunda mevcut Firebase projenize Firebase uygulamaları da ekleyebileceğinizi unutmayın.
Firebase projenize eklenecek Firebase Uygulaması türünü seçin.
Mevcut Firebase projenize bir Firebase Android uygulaması ekleyebilirsiniz.
İSTE
projects.androidApps.create
numaralı telefonu arayı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 Konsolu'nda görünen standart paket adı.
İsteğe bağlı olsa da ö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 yararlıdır.
Örneğimizin istek gövdesinde packageName
ve displayName
kullanacağız:
{
"displayName": "My Firebase Android App"
"packageName": "com.firebase.android"
}
Firebase projenize Firebase Android uygulaması eklemek için Node.js ile ilgili 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
'e yapılan bir aramanın sonucu bir Operation
olur. Projeniz için Firebase ile ilgili diğer uç noktaları çağırabilmeniz için ö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
değeri AndroidApp
türüne sahip olana kadar işlem üzerinde operations.get
işlevini çağırabilirsiniz. İşlem başarısız olursa error
değeri google.rpc.Status
olarak ayarlanır.
operations.get
çağrısının yanıt gövdesi aşağıda verilmiştir:
{
"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
türü true
ve response
türü AndroidApp
olduğundan FirebaseProject
için artık AndroidApp
var. Yanıt, yeni oluşturduğunuz Firebase Android uygulaması hakkında benzersiz Firebase appId
gibi diğer yararlı bilgileri de içerir. Operation
, tamamlandıktan sonra otomatik olarak silinir.
SHA sertifikaları ekleme
projects.androidApps.sha.create
kodunu çağırarak mevcut herhangi bir Firebase Android uygulamasına SHA sertifikaları ekleyebilirsiniz.
Bu yöntem çağrısının istek metninde boş bir name
alanı olmalıdır.
Bu çağrının sonucu, ShaCertificate
etiketinin yeni oluşturulmuş bir örneğidir.
projects.androidApps.sha.create
numarasını aradığınızda 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'leri bölümünü ziyaret edin.
Firebase projenizi bir Google Analytics hesabına bağlama (İsteğe bağlı)
Mevcut bir Google Analytics hesabını mevcut FirebaseProject
hesabınıza programatik olarak bağlayabilirsiniz. Mevcut Firebase projenizi Proje Ayarlarınızın Entegrasyonlar sekmesinden Google Analytics'e bağlayabileceğinizi de unutmayın.
projects.addGoogleAnalytics
çağrısı için analytics_resource
gerekir. analytics_resource
, analyticsAccountId
veya analyticsPropertyId
olabilir:
Belirtilen hesapta 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.
Hem analyticsAccountId
'nizi hem de mevcut analyticsPropertyId
'lerinizi Google Analytics web sitesinde bulabilirsiniz.
projects.addGoogleAnalytics
numaralı telefonu aradığınızda:
İlk kontrol, Google Analytics mülkünde mevcut veri akışlarının
FirebaseProject
'ünüzdeki mevcut Firebase uygulamalarına (veri akışıyla ilişkilipackageName
veyabundleId
'ye göre) karşılık gelip gelmediğini belirler. Ardından, geçerli olduğu durumlarda veri akışları ve uygulamalar bağlanır. Bu otomatik bağlamanın yalnızca Android ve iOS uygulamaları için geçerli olduğunu unutmayın.Firebase uygulamalarınız için ilgili veri akışı bulunamazsa Google Analytics mülkünde Firebase uygulamalarınızın her biri için yeni veri akışları sağlanır. Bir Web Uygulaması için Analytics mülkünüzde daha önce bir veri akışıyla ilişkilendirilmiş olsa bile her zaman yeni bir veri akışının sağlanacağını unutmayın.
Google Analytics hesaplarının hiyerarşisi ve yapısı hakkında daha fazla bilgiyi Analytics dokümanlarından edinebilirsiniz.
İSTE
projects.addGoogleAnalytics
numaralı telefonu arayın.
project.addGoogleAnalytics
adresine yaptığımız örnek çağrının istek gövdesinde analyticsAccountId
Google Analytics hesabımızı belirtiriz. Bu çağrı, yeni bir Google Analytics mülkü oluşturur ve yeni mülkü FirebaseProject
ile ilişkilendirir.
{
"analyticsAccountId": "<your-google-analytics-account-id>"
}
Node.js ile bir Firebase projesini Google Analytics hesabına bağlamaya yönelik bir örnek aşağıda verilmiştir:
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Ç
projects.addGoogleAnalytics
'e yapılan bir aramanın sonucu bir Operation
olur. Projeniz için Firebase ile ilgili diğer uç noktaları çağırabilmeniz için ö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üne sahip olana kadar işlemde operations.get
'ü çağırabilirsiniz. İşlem başarısız olursa error
değeri google.rpc.Status
olarak ayarlanır.
Bir operations.get
çağrısının yanıt gövdesi aşağıda verilmiştir:
{
"name": "operations/...",
"none": true,
"response": {
"@type": "type.googleapis.com/google.firebase.service.v1beta1.AnalyticsDetails",
"analyticsProperty": [
{
"id": "...",
"displayName": "..."
}
],
"streamMappings": [
{
"app": "...",
"streamId": "...",
"measurementId": "..."
}
]
}
}
done
doğru değerine ve response
türü analyticsDetails
olduğu için FirebaseProject
, belirtilen Google Analytics hesabına bağlandı. Operation
, tamamlandıktan sonra otomatik olarak silinir.