我想在我的节点上验证从我的Android应用程序获得的所有令牌(Google登录名)。我首先像这样初始化firebase模块:
var admin = require('firebase-admin');
var serviceAccount = require('googlefirebase');
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: url
});
这给我一些关于DEFAULT名称的错误,我发现我需要使用以下代码:
var admin = require('firebase-admin');
var serviceAccount = require('googlefirebase');
admin.initializeApp(functions.config().firebase);
然后我意识到我需要在服务器上安装并初始化项目,所以我做到了:
firebase login
firebase init
firebase use --add project
firebase functions:config:set "google-services.json" (just the project_info data of the json that i downloaded from firebase)
现在我收到此错误:
错误:必须使用证书凭证初始化应用程序或设置Firebase 项目ID作为要调用的GOOGLE_CLOUD_PROJECT环境变量 verifyIdToken()
编辑开始 我打电话时收到此错误:
admin.auth().verifyIdToken(token).then(function(decodedToken) {}.catch(){};
编辑结束
我已经“初始化”了firebase(或者至少是我这样)并创建了环境变量:GOOGLE_CLOUD_PROJECT和FIREBASE_CONFIG,我一直遇到相同的错误。
那么,使Firebase正常工作的正确方法是什么?我想念什么? verifyIdToken是验证令牌的正确方法吗?我只想验证Google登录令牌。
答案 0 :(得分:0)
借助Firebase的Cloud Functions,您不再需要这样初始化:
admin.initializeApp(functions.config().firebase);
您应该不使用任何参数:
admin.initializeApp();
此外,您的google-services.json文件在Cloud Functions中没有用。那只能在Android应用中使用。
答案 1 :(得分:0)
您应该具有FIREBASE_CONFIG环境变量,然后调用
// Initialize the default app
var admin = require('firebase-admin');
var app = admin.initializeApp();
该配置变量包含初始化信息,例如:
databaseURL: 'https://databaseName.firebaseio.com',
storageBucket: 'projectId.appspot.com',
projectId: 'projectId'