You need to write security rules.
Любой пользователь может увидеть ваш URL, но правила безопасности, как вы диктовать кто имеет доступ к какие части данных.
Эти правила действуют как аннотации в вашей структуре данных и указывают, какие ограничения должны быть выполнены, чтобы позволить чтение или запись.
Предположим, вы хотите защитить свою базу данных, чтобы только зарегистрированные пользователи могли получить доступ к базе данных. Это стандартные правила базы данных Realtime.
{
"rules": {
".read": "auth != null",
".write": "auth != null"
}
}
auth
переменного значение на сторону сервера, который хранит текущий аутентифицированный пользователь. Правило проверяет, имеет ли эта переменная значение и, следовательно, содержит зарегистрированного пользователя.
я ожидал бы, что панель Firebase позволяет генерировать ключ API, который я могу вставлять в моем приложении, но это не кажется, случая.
Firebase консоль даст вам секретный ключ, который дает вам полный доступ независимо от правил. Но если вы вставляете это в свое приложение, то он больше не защищен. Вот почему вы используете аутентификацию, потому что это создает токены против этого секретного ключа для конкретного зарегистрированного пользователя.
Если ваше приложение напрямую разговаривает с db, тогда было бы тривиально, чтобы кто-то мог захватить/проанализировать эти сообщения и полностью обойти ваше приложение и напрямую поговорить с db. вам в основном необходимо реализовать веб-сервис, который выполняет сопряжение. так что это будет app <-> webservice <-> db, а не any_who_wants_to <-> db –
действительно очень легко получить доступ к чьей-либо firebase db, если они не обеспечили ее. Все, что вам нужно, это URL-адрес приложения firebase, который, как правило, легко угадать. а затем u может выдавать команды чтения записи непосредственно на него. – Kashif