2016-11-07 3 views
3

Я пытаюсь использовать Firebase в Node.js, но каждый раз, когда я перезапустить сервер я получаю следующее сообщение об ошибке:FIREBASE ВНИМАНИЕ: При условии, учетные данные аутентификации являются недействительными

FIREBASE WARNING: Provided authentication credentials are invalid. This usually indicates your FirebaseApp instance was not initialized correctly. Make sure your apiKey and databaseURL match the values provided for your app at https://console.firebase.google.com/ , or if you're using a service account, make sure it's authorized to access the specified databaseURL and is from the correct project.

Ниже мои index.js: _

var express = require('express'); 
 
var router = express.Router(); 
 
var mongoose=require('mongoose'); 
 
var admin=mongoose.model('admin'); 
 

 

 
var firebase = require("firebase"); 
 

 
// Initialize the app with no authentication 
 
firebase.initializeApp({ 
 
\t serviceAccount: { 
 
    projectId: "...", 
 
    clientEmail: "...", 
 
    privateKey: "-----BEGIN PRIVATE KEY-----...", 
 
    }, 
 

 
     databaseURL: "..." 
 
}); 
 

 
console.log("sfsaf") 
 

 
// The app only has access to public data as defined in the Security Rules 
 
\t \t \t var db = firebase.database(); 
 
\t \t \t var ref = db.ref("unitalk-b9145"); 
 
\t \t \t var messagesRef = ref.child("messages"); 
 
\t \t \t 
 
\t \t \t messagesRef.push({ 
 
\t \t \t \t name:"Rupali", 
 
\t \t \t \t post:"Demo test of firebase" 
 
\t \t \t });

Хотя я проверил путь сервис-счета и DatabaseURL .. P Помощь в аренде.

ответ

1

Вы не можете войти в систему с учетной записью службы, используя пакет «firabase». Для этого вам нужно использовать пакет «firabase-admin». Вы можете найти подробную информацию здесь (https://firebase.google.com/docs/database/admin/start).

ОБНОВЛЕНО: 8 ноября 2016

пойти: https://console.firebase.google.com

Чтобы использовать SDKs Firebase администратора, вам потребуется Firebase проект, учетная запись службы для связи с Firebase службы, и файл конфигурации с учетными данными вашей учетной записи службы.

  1. Перейдите на вкладку «Учетные записи службы» в настройках вашего проекта .
  2. Выберите проект вашей Firebase. Если у вас его еще нет, нажмите кнопку Создать новый проект. Если у вас уже есть существующий проект Google, связанный с вашим приложением, вместо этого нажмите «Импортировать проект Google ».
  3. Нажмите кнопку «Создать новый закрытый ключ» в нижней части раздела SDK Firebase Admin на вкладке «Учетные записи службы».
  4. После того, как вы нажмете кнопку, будет загружен файл JSON, содержащий вашу службу. учетные данные учетной записи будут загружены. Для этого вам понадобится инициализировать SDK на следующем шаге.

Пример кода;

var admin = require("firebase-admin"); 

var serviceAccount = require("path/to/serviceAccountKey.json"); 

admin.initializeApp({ 
    credential: admin.credential.cert(serviceAccount), 
    databaseURL: "https://<DATABASE_NAME>.firebaseio.com" 
}); 
+0

@ Халил-я имею включить «firabase-администратора »и обновить с помощью следующего кода. ** admin.initializeApp ({ \t удостоверение: admin.credential.cert ({ ProjectID: "unitalk-b9145", clientEmail: «[email protected]ком», PrivateKey: "----- BEGIN PRIVATE ---" }), DatabaseURL: "https://unitalk-b9145.firsebaseio.com/" }); ** – Rupali

+0

Но дает следующее error- Не удается прочитать свойство «cert» undefined – Rupali

+0

Я уже упомянул выше упомянутые выше 4 точки и обновил следующий код: var firebase = require («firebase»); var admin = require («firebase-admin») ; вар ServiceAccount = требуется ("serviceAccountKey.json"); admin.initializeApp ({ удостоверение: admin.credential.cert (ServiceAccount), DatabaseURL: «<БАЗА ДАННЫХ _NAME> .firebaseio.com/" }); – Rupali

0

Вы используете требуют модуля («firebase»), так и нужно следующие вещи:

var config = { 
    apiKey: " [your api key]", 
    authDomain: "[projectname].firebaseapp.com", 
    databaseURL: "https://[projectname].firebaseio.com/", 
    storageBucket: "[projectname].appspot.com", 
    messagingSenderId: "[message id]", 
}; 

firebase.initializeApp(config); 

Если вы хотите использовать требуют («firebase-администратора»), то вы должны настроить Файл serviceAccountKey.json (загруженный файл) ... Я могу успешно связаться с firebase.

+0

var firebase = require ('firebase'); var serviceAccount = require ("./ serviceAccountKey.json"); FirebaseAdmin.initializeApp ({ удостоверение: FirebaseAdmin.credential.cert (ServiceAccount), DatabaseURL: "https://nodewithfirebase.firebaseio.com/" }); app.get ('/', function (req, res) { FirebaseAdmin.database(). Ref ('/ users'). Set ({ имя пользователя: "test", email: "test @ mail. com " }); res.send (" приложение для использования в firebase "); }); – Pooja

0

Another method to solve the issue link

для тех, кто все еще сталкивается этот вопрос, вы можете попробовать на этом методе, это связано с управлением ролей проекта в соответствии с описанием внутри