【问题标题】:Firebase: Error: PERMISSION_DENIED: Permission deniedFirebase:错误:PERMISSION_DENIED:权限被拒绝
【发布时间】:2023-04-23 08:41:01
【问题描述】:

我想为我的 firebase 应用验证用户身份。 为此,我进行了自定义身份验证。 这会生成一个User_Id 密钥。

但是,在使用此 User_Id 密钥生成 token 之后。 当我在 signInWithCustomToken 函数中使用该令牌时,它会说。 “自定义令牌格式不正确。请检查文档。” 权限被拒绝错误。

数据库规则:

{
  "rules": {
    "users": {
      "$uid": {
        ".read": "$uid === auth.uid",
        ".write": "$uid === auth.uid"
      }
    }
  }
}

var firebase = require('firebase');
require('firebase/auth');
require('firebase/database');

var FirebaseTokenGenerator = require("firebase-token-generator");

//firebase configuration
var config = {
    apiKey: "<APP-secret-key>",
    authDomain: "<auth-domain>",
    databaseURL: "<database-url>",
    storageBucket: "",
};

//initialize your firebase app
var fireApp = firebase.initializeApp(config);

//connect to database
var database = firebase.database();

var tokenGenerator = new FirebaseTokenGenerator("<APP-secret-key>");
var token = tokenGenerator.createToken({ uid: "User_id"});
  //get reference for 'user' document
 fireApp.auth().signInWithCustomToken(token).catch(function(error) {
  // Handle Errors here.
  var errorCode = error.code;
  var errorMessage = error.message;
  console.log('firebaseerrors', errorMessage);
  // ...

});

【问题讨论】:

    标签: firebase firebase-realtime-database firebase-authentication


    【解决方案1】:

    来自token generator project on Github的自述文件的顶部:

    警告:此令牌生成器与 Firebase SDK 的 1.x.x 和 2.x.x 版本兼容。如果您使用的是 3.x.x SDK,请参考文档here

    【讨论】: