Firebase отказывает в разрешении, даже если авторизация прошла успешно - PullRequest
0 голосов
/ 11 апреля 2019

При успешном использовании auth.signInWithEmailAndPassword я по-прежнему не получаю разрешения на доступ к базе данных.

Предполагается, что это серверный скрипт для генерации PDF-файлов из данных базы данных.Другой скрипт + сайт используется для генерации данных и работает просто отлично.Я связал его с этим кодом, и он не будет работать.Пробовал убирать обещания, не получится.Попытка расширить обещания и поймать их, не сработает.

// simplified, successful auth with predefined, working email and password
auth.signInWithEmailAndPassword(email, password);


// this bit causes the error messages
db.collection('redacted').get()
  .then((snapshot) => {
    snapshot.forEach((doc) => {
      console.log('success');
    });
  })
  .catch((err) => {
    console.log('Error getting documents', err);
  });

Я ожидал получить хорошее «Успешное» в консоли, вместо этого я получаю:

(node:4892) DeprecationWarning: grpc.load: Use the @grpc/proto-loader module with grpc.loadPackageDefinition instead
Error getting documents { FirebaseError: Missing or insufficient permissions.
    at new FirestoreError (.\firebaseTest\node_modules\@firebase\firestore\dist\index.node.cjs.js:353:28)
    at JsonProtoSerializer.fromRpcStatus (.\firebaseTest\node_modules\@firebase\firestore\dist\index.node.cjs.js:5772:16)
    at JsonProtoSerializer.fromWatchChange (.\firebaseTest\node_modules\@firebase\firestore\dist\index.node.cjs.js:6269:44)
    at PersistentListenStream.onMessage (.\firebaseTest\node_modules\@firebase\firestore\dist\index.node.cjs.js:14819:43)
    at .\firebaseTest\node_modules\@firebase\firestore\dist\index.node.cjs.js:14748:30
    at .\firebaseTest\node_modules\@firebase\firestore\dist\index.node.cjs.js:14788:28
    at .\firebaseTest\node_modules\@firebase\firestore\dist\index.node.cjs.js:7541:20
    at process._tickCallback (internal/process/next_tick.js:68:7)
  code: 'permission-denied',
  name: 'FirebaseError',
  toString: [Function] }

Пожалуйста, помогите.

Ответы [ 2 ]

0 голосов
/ 11 апреля 2019

Вам нужно позвонить db.collection('') после того, как вы получите логин в

firebase.auth().onAuthStateChanged(function(user) {
  if (user) {
.. your code goes here.
  } 
}

, найти больше здесь: https://firebase.google.com/docs/auth/web/start

0 голосов
/ 11 апреля 2019

Проверьте свои правила в консоли Firebase, возможно, у вашего пользователя нет прав доступа к запрошенному пути.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...