В основном я разрабатываю угловое приложение 7 , где каждый пользователь может читать и писать, что находится внутри пожарного депо, и для этого я отсылаю их официальный документ в AngularFire2 . Поэтому мне нужно получать данные таким образом, чтобы при каждом входе пользователя в мое приложение он / она уже проходил аутентификацию и только после этого получал доступ к данным облачного пожарного хранилища. Я могу сделать это следующим образом:
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth.uid != null;
}
}
}
В настоящее время я аутентифицируюсь с signInWithEmailAndPassword()
и GoogleAuthProvider()
.
doGoogleLogin() {
return new Promise<any>((resolve, reject) => {
const provider = new firebase.auth.GoogleAuthProvider();
provider.addScope('profile');
provider.addScope('email');
this.afAuth.auth
.signInWithPopup(provider)
.then(res => {
resolve(res);
}, err => {
console.log(err);
reject(err);
});
});
}
doLogin(value) {
return new Promise<any>((resolve, reject) => {
firebase.auth().signInWithEmailAndPassword(value.email, value.password)
.then(res => {
resolve(res);
console.log(this.afAuth);
}, err => reject(err));
});
}
Я хочу предоставить пользователям доступ на основе databaseURL
и projectId
, которые не включены в список пользователей в моей консоли Firebase, но уже вошли в систему по электронной почте в браузере. Я знаю, что это может звучать немного странно, несмотря на то, что я могу аутентифицироваться с помощью этих методов, но ограничением является количество пользователей в консоли, которое может быть максимум 500 . Итак, главное, могу ли я получить и использовать этот токен сеанса и отправить его в firebase для получения данных?
Я уже пытался определить правила по-другому, но, похоже, ни одно из них не работает. Я также пошел дальше, чтобы посмотреть, смогу ли я предоставить доступ только пользователям моего домена, но, видимо, это не совсем так, потому что пользователи спама могут отправлять те же параметры, и поэтому основная цель уничтожается.
Если вам нужно больше ясности с вопросом, пожалуйста, спросите.
Спасибо за вашу помощь и время. Мир.