При разработке приложения на Реакте появилась такая проблема. Есть Удаленная база данных Firebase, из которой мне нужно выгружать данные. Есть аналогичное приложение на Андроид, которое работает правильно без ошибок, а react-приложение не может подключиться к firebase. Скажу сразу, что у меня права доступа к базе настроены так:
{
"rules": {
".read": "auth != null",
".write": "auth != null"
}
}
Когда я выставляю значения свойств true я получаю доступ к базе, но не хочу так делать, так как я открываю свободный доступ к своей базе. А вот код подключения к firebase из js приложения, здесь я вставляю конфиг, который мне сам firebase отдал:
import firebase from 'firebase';
const config = {
apiKey: "***",
authDomain: "***",
databaseURL: "***",
projectId: "***",
storageBucket: "***",
messagingSenderId: "***"
};
firebase.initializeApp(config);
export const database = firebase.database();
export const auth = firebase.auth();
При firebase.auth()
выдает null
При попытке вывести данные из базы я получаю такое сообщение:
permission_denied at /restaurants: Client doesn't have permission to access the desired data
Как можно решить эту проблему?
Права доступа настроены вполне нормально. То есть, такая запись вполне легальна:
{
"rules": {
".read": "auth != null",
".write": "auth != null"
}
}
Это можно найти здесь: Get Started with Database Rules, ну и посмотреть для ознакомления тут тоже: User Based Security.
Если на этой строке вы получаете null
:
export const auth = firebase.auth();
А во время попытки получить данные из базы получили сообщение, что "у клиента нет разрешения на доступ к нужным данным", значит, что попытка авторизации завершилась неудачно. Значит пользователь не авторизован. Нужно править config
и устанавливать верные значения.
Как только в этой строке будет не null
:
export const auth = firebase.auth();
Тогда и будет пользователь авторизован и данные можно будет получить. Для справки:
Все сделал как написано в документации аутентификации, в итоге подключился к firebase, все работает, спасибо. Но у меня теперь появился другой вопрос. Я у себя на фронте прописываю email и пароль пользователя, чтобы авторизоваться, но получается любой, кто зайдет в исходный код сможет увидеть мои данные для входа в мою почту? Как от этого можно защититься?
P.S. Пишу с другого аккаунта, так как временно не имею доступ на аккаунт ТС
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Хочу создать многомерный массив, заполненный значения двух атрибутов, чтобы вышло что-то вроде:
ЗдравствуйтеПроблема состоит в том, что когда я запускаю рисование на одной вкладке, перехожу на вторую, а через 5 (без разницы сколько) секунд...
Я пытаюсь написать свою собственную карусель на Angular2, но не знаю как это сделать правильно ( тк
Как сделать перевод, для скриптов, которые выводят текст в тэги если они такие: