好问题,
要从firebase添加google auth以进行管理员访问,首先需要从firebase获得.json文件,可以从具有auth设置的管理面板中获取它。>
转到服务帐户生成并下载JSON
您希望如何在文件中使用它...例如我的管理路线
//Use dotenv to read .env vars into Node require('dotenv').config(); const express = require('express'); var router = express.Router(); // Schema import const postModel = require('../models/postModel'); const userModel = require('../models/userModel'); // parse json to use in all requests got or sent by router .. which is provided by express router.use(express.json()); // Initialize the default app var admin = require('firebase-admin'); admin.initializeApp({ credential: admin.credential.cert({ "type": process.env.FIREBASE_TYPE, "project_id": process.env.ID, "private_key_id": process.env.FIREBASE_PRIVATE, "private_key": process.env.FIREBASE_PRIVATE_KEY.replace(/\\n/g, '\n'), "client_email": process.env.FIREBASE_CLIENT_EMAIL, "client_id": process.env.FIREBASE_CLIENTID, "auth_uri": process.env.FIREBASE_AUTHURI, "token_uri": process.env.FIREBASE_TOKEN, "auth_provider_x509_cert_url": process.env.FIREBASE_AUTH_PROVIDER, "client_x509_cert_url": process.env.FIREBASE_FIREBASE_CLIENT }), databaseURL: process.env.FIREBASE_DATABASE }); console.log(process.env.ID) router.post('/', (req, res, next) => { const admin_uid = req.body.uid; if (admin_uid === process.env.ADMIN_URI) { // // users email const email = req.body.email; admin .auth() .getUserByEmail(email) .then(function(userRecord) { // See the UserRecord reference doc for the contents of userRecord. console.log('Successfully fetched user data:', userRecord.toJSON()); // res.json(userRecord.toJSON()) admin.auth().updateUser(userRecord.uid, { disabled: true }).catch((error) => res.json(error)); }) .catch(function(error) { console.log('Error fetching user data:', error); // res.json(error) }); // delete the posts of the user and the user postModel.deleteMany({ author: email }, (error, returnedDocuments) => { if (error) return next(error); userModel.findOneAndDelete({ email: email }, (error, returnedDocuments) => { if (error) return next(error); res.json(`User ${email} deleted ...Posts from ${email} deleted`); }); }); } else { res.json('failure, admin ops'); } }); module.exports = router;
在您的.env中,它必须位于前端,否则react无法获取密钥,因此您将需要2 .env,一个用于客户端,一个用于服务器,在react .env中执行此操作
祝您好运,如果您愿意的话,请添加注释以改善。
很好的问题,要从firebase添加google auth以进行管理员访问,首先需要从firebase中添加.json文件,您可以从管理面板上获取该文件,并在其中通过auth设置进入该服务...
祝您好运,如果您愿意的话,请添加注释以改善。