Я настроил Firebase Functions для звонков в мой Firestore. Я использую admin.auth () и возвращаю данные. Я установил пользовательские правила в разделе «Правила Firestore», но функции не следуют правилам, т. Е. Когда я использую URL в Почтальоне, я не должен получать данные, потому что они не выполняются «если прочитано, напишите: если запрос» .auth! = null ". Как мне это решить?
Вот мой код функции Firebase:
const admin = require('firebase-admin');
module.exports = function(req, res) {
const uid = req.body.uid;
admin
.auth()
.getUser(uid)
.then(user => {
admin
.firestore()
.collection('discover')
.get()
.then(snapshot => {
res.send(
snapshot.docs.map(doc => {
const data = Object.assign({ doc_id: doc.id }, doc.data());
return data;
})
);
})
.catch(err => {
res.send({ message: 'Something went wrong!', success: false });
});
})
.catch(err => {
res.send({ error: 'Something went wrong!', success: false });
});
};
Правила хранения файлов:
service cloud.firestore {
match /databases/{database}/documents {
match /users/{users} {
allow read: if request.auth != null;
}
match /discover/{discover} {
allow read: if request.auth != null;
}
match /favorites/{favorite} {
allow read, write: if request.auth != null;
}
}
}
Я не смог бы получить эти данные от Почтальона (поскольку я не аутентифицирован), но я все еще получаю данные. Я не хочу, чтобы данные были доступны, если пользователь не вошел в систему.