简体   繁体   English

无法连接到Firebase Realtime数据库NodeJS服务器

[英]Can't connect to Firebase Realtime Database NodeJS Server

When I try to run the below code, the following error shows up in the console: 当我尝试运行以下代码时,控制台中显示以下错误:

node mcve.js FIREBASE WARNING: set at /sitesToVisit/-Kr6oOddLtLUcpUpha7m failed: permission_denied (node:12540) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: PERMISSION_DENIED: Permission denied 节点mcve.js防火墙警告:设置为/ sitesToVisit / -Kr6oOddLtLUcpUpha7m失败:Permission_denied(node:12540)UnhandledPromiseRejectionWarning:未处理的承诺拒绝(拒绝ID:1):错误:PERMISSION_DENIED:权限被拒绝

var firebase = require("firebase");
var config = {
    apiKey: "AIzaSyCJyakN_kwOnZ2f4-P0tzGdODEJeDsXt3w",
    authDomain: "seo-hero-fe0e8.firebaseapp.com",
    databaseURL: "https://seo-hero-fe0e8.firebaseio.com",
    projectId: "seo-hero-fe0e8",
    storageBucket: "seo-hero-fe0e8.appspot.com",
    messagingSenderId: "333356421370"
  };
  firebase.initializeApp(config);
    var database = firebase.database();
    var sitesToVisitRef = firebase.database().ref("sitesToVisit");
    var newSiteToVisitRef = sitesToVisitRef.push();
    newSiteToVisitRef.set({
      url: 'url',
      baseUrl: 'urlBase'
    });
var firebase = require("firebase");
var config = {
    apiKey: "apiKey",
    authDomain: "authDomain",
    databaseURL: "databaseURL",
    projectId: "projectId",
    storageBucket: "storageBucket",
    messagingSenderId: "messagingSenderId"
  };
  firebase.initializeApp(config);
    var database = firebase.database();
    var sitesToVisitRef = firebase.database().ref("sitesToVisit");
    var newSiteToVisitRef = sitesToVisitRef.push();
    newSiteToVisitRef.set({
      url: 'url',
      baseUrl: 'urlBase'
    });

Update: I tried creating a new file in a new folder, that wasn't in a public NPM package. 更新:我尝试在新文件夹中创建一个新文件,该文件不在公共NPM软件包中。 This worked when I did a simple: 这在我做一个简单的工作时起作用:

firebase.database().ref('usersecond').set({
    username: "ben",
    email: "hi",
    profile_picture : "imageUrl"
  });

After initializing the database. 初始化数据库后。 However, when I added the rest of my code, this set didn't affect the database; 但是,当我添加其余代码时,该设置不会影响数据库。 it didn't throw an error, but the data just didn't show up in the database. 它没有引发错误,但是数据没有显示在数据库中。 Could this be because I am using the NPM Request Module? 可能是因为我正在使用NPM请求模块吗?

It looks like you don't have permission to write /sitesToVisit/-Kr6oOddLtLUcpUpha7m . 看来您无权编写/sitesToVisit/-Kr6oOddLtLUcpUpha7m

If this code is running on a trusted environment (eg a device/server you control, or Cloud Functions), I'd consider using the Firebase Admin SDK: https://firebase.google.com/docs/admin/setup . 如果此代码在受信任的环境 (例如您控制的设备/服务器或Cloud Functions)上运行,则考虑使用Firebase Admin SDK: https ://firebase.google.com/docs/admin/setup。 This will make the code run with administrative privilege, bypassing security rules. 这将使代码以管理特权运行,而绕过安全规则。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM