ダートでGoogleのFirebaseとGoogleのAPIを使用:.dartで、次の2つの.jsプログラムに相当するものが:グーグルFirebaseとAPI:生成アクセストークンとカスタムアクセストークン
- 生成サーバー上のアクセストークン:
;
var google = require("googleapis");
// Load the service account key JSON file.
var serviceAccount = require("./xxxxxxxx.json");
// Define the required scopes.
var scopes = [
"https://www.googleapis.com/auth/userinfo.email",
"https://www.googleapis.com/auth/firebase.database"
];
// Authenticate a JWT client with the service account.
var jwtClient = new google.auth.JWT(
serviceAccount.client_email,
null,
serviceAccount.private_key,
scopes
);
// Use the JWT client to generate an access token.
jwtClient.authorize(function(error, tokens) {
if (error) {
console.log("Error making request to generate access token:", error);
} else if (tokens.access_token === null) {
console.log("Provided service account does not have permission to generate access tokens");
} else {
var accessToken = tokens.access_token;
console.log(accessToken);
// See the "Using the access token" section below for information
// on how to use the access token to send authenticated requests to
// the Realtime Database REST API.
}
});
と2:
サーバーと(テストのためここでは1に混入)クライアント側でカスタムアクセストークンを生成します。
var google = require("googleapis");
var serviceAccount = require("xxxxxxxx.json");
var admin = require("firebase-admin");
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "xxxx"
});
var firebase = require("firebase");
var config = {
apiKey: "xxxx",
authDomain: "xxxxxx",
databaseURL: "xxxx",
projectId: "xxxx",
storageBucket: "xxx",
messagingSenderId: "xxxxx"
};
firebase.initializeApp(config);
var uid = "some-uid";
var additionalClaims = {
premiumAccount: true
};
admin.auth().createCustomToken(uid/*, additionalClaims*/)
.then(function(customToken) {
// begin client use, actually in browser. Here for testing.
firebase.auth().signInWithCustomToken(customToken).then(
function(d){
var fbref = firebase.database().ref('/users/'+uid );
fbref.set({
username: "name",
email: "email",
profile_picture : "imageUrl"
}).catch(function(error) {
console.log("Kann nicht setzen: " + error);
});
var userId = firebase.auth().currentUser.uid;
return firebase.database().ref('/users/' + userId).once('value').then(function(snapshot) {
console.log(snapshot.val());
});
}
).catch(function(error) {
var errorCode = error.code;
var errorMessage = error.message;
});
// end client use
})
.catch(function(error) {
console.log("Error creating custom token:", error);
});
私が何を知りたいです私が必要とするパッケージ、およびそのドキュメントを入手できる場所。
少なくとも、ダーツプログラムへの簡単な翻訳が役立ちます。