Я не могу аутентифицировать мои клиентские звонки в мою базу данных Firebase Realtime.
Ссылка на страницу в моем приложении MERN qupp , где вы можете получить представление о том, как работает сайт (пожалуйста, обратите внимание, я строю это только для экспериментов, в логике этого приложения есть дыры).Не стесняйтесь искать и добавлять песни.
Мое приложение позволяет любым анонимным пользователям посещать мой сайт, искать песни с помощью API Spotify и добавлять эту песню / данные в очередь на моем сайте, которая сохраняется с помощью Firebase (Firebaseи syncState, так что его в реальном времени и несколько пользователей могут добавлять в очередь одновременно).Пока это общедоступно, я хочу заблокировать базу данных Firebase, чтобы только мой веб-сайт мог писать в нее.
Это помешало бы хакерам удалять / манипулировать данными в очереди.
В данный момент мойПравила базы данных Firebase настроены на чтение / запись: true.Если я установлю их как «auth! == null», то, конечно, я больше не смогу писать в БД с моего сайта.Но я не могу понять, как аутентифицировать мои звонки без того, чтобы каждый пользователь заходил на мой сайт.
"rules": {
".read": true,
".write": true
}
Примечание.Firebase используется на стороне клиента в моем приложении (так как он работает с React для синхронизации состояния), и поэтому я не верю, что могу использовать firebase-admin SDK для аутентификации моего сервера и, следовательно, для выполнения аутентифицированных вызовов.
Anу меня была идея, что всякий раз, когда мое приложение инициализируется (в моем файле base.js), я вхожу сюда, чтобы мое приложение Firebase проходило аутентификацию, но я не могу найти способ сделать это.
client / src / base.js
import Rebase from 're-base';
import firebase from 'firebase';
const {
FIREBASE_API_KEY
} = process.env;
const firebaseApp = firebase.initializeApp({
apiKey: FIREBASE_API_KEY,
authDomain: "qupp-xxxx.firebaseapp.com",
databaseURL: "https://qupp-xxxx.firebaseio.com"
});
const base = Rebase.createClass(firebaseApp.database());
export { firebaseApp };
export default base;
Мой предполагаемый результат заключается в том, что мой сайт может писать в мою базу данных Firebase, когда для правил установлено:
"rules": {
".read": “auth !== null”,
".write": “auth !== null”
}