getAccessToken static method
Implementation
static Future<String> getAccessToken() async {
final serviceAccountJson = {
"type": "service_account",
"project_id": "chat-application-real-time",
"private_key_id": dotenv.env['PRIVATE_KEY_ID'],
"private_key": dotenv.env['PRIVATE_KEY'],
"client_email": dotenv.env['CLIENT_EMAIL'],
"client_id": dotenv.env['CLIENT_ID'],
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url":
"https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": dotenv.env['CLIENT_CERT_URL'],
"universe_domain": "googleapis.com"
};
List<String> scopes = [
"https://www.googleapis.com/auth/userinfo.email",
"https://www.googleapis.com/auth/firebase.database",
"https://www.googleapis.com/auth/firebase.messaging",
];
http.Client client = await auth.clientViaServiceAccount(
auth.ServiceAccountCredentials.fromJson(serviceAccountJson),
scopes,
);
auth.AccessCredentials credentials =
await auth.obtainAccessCredentialsViaServiceAccount(
auth.ServiceAccountCredentials.fromJson(serviceAccountJson),
scopes,
client);
client.close();
return credentials.accessToken.data;
}