如何配置firebase-admin sdk

时间:2018-01-10 06:06:08

标签: javascript node.js firebase webpack firebase-authentication

〜您好,我正在开发一个带有google firebase的用户控制系统。 目前只有2个功能:添加用户并将其删除。

对于添加用户非常简单,我只需要从控制台复制并粘贴自动生成的脚本,但这里的问题是删除用户,因为我需要管理员级别的auth,所以,我读到的node.js和我在Centos7上运行的VPS,所以我继续进行安装:

yum install npm

然后在我的域名文件夹中,我使用了以下内容:

npm init 

用于生成初始 package.json

npm install firebase-admin --save

然后我不知道如何使用它,因为我知道没有为浏览器定义函数 require ,因为它是后端,我的意思是浏览器中出现以下错误:

未捕获的ReferenceError:未定义require

读了一下我发现我可以使用一个名为webpack的东西(我第一次使用它),然后我按照下面的说明操作:

  npm install --save-dev ts-loader webpack-node-externals
  npm install --global webpack

然后,我的配置文件:

webpack.config.js

'use strict';
var nodeExternals = require('webpack-node-externals');
module.exports = {
    entry: './index.ts',
    output: {
        filename: 'index.js', 
        libraryTarget: 'this' 
    },
    target: 'node', 
    module: {
        rules: [
            {
                test: /\.tsx?$/,
                loader: 'ts-loader',
                options: {
                    transpileOnly: true
                }
            }
        ]
    },
    resolve: {
        extensions: [ '.ts', '.tsx', '.js' ]
    },
    externals: [nodeExternals()] 
};

tsconfig.json

{
  "compilerOptions": {
    "target": "es6",
    "module": "commonjs",
    "outDir": "./",
    "noImplicitAny": true,
    "strictNullChecks": false
  },
  "include": [
    "./*.ts"
  ],
  "exclude": [
    "node_modules"
  ]
}

index.ts

const admin = require('firebase-admin');
const serviceWorker = require('./<MY_PRIVATE_KEY>.json');

admin.initializeApp({
    credential: admin.credential.cert(serviceWorker),
    databaseURL: "https://<MY_DATABASE>.firebaseio.com/"
});

运行 webpack 命令后,会生成 index.js 文件,该文件应该包含在我的网站中......但问题是......我仍然有错误...(附图中的完整错误)

Error of my website in the generated index.js

因此...

如果你帮我解决错误,我将不胜感激...我是node.js的新手 我只想运行删除用户功能:

admin.auth().deleteUser(uid)
    .then(function() {
        alert("Successfully deleted user");
    })
    .catch(function(error) {
        alert("Error deleting user:" + error);
    });

0 个答案:

没有答案