在 firebase auth 中,只有在我将其设为登录的主要电子邮件后,我才能验证用户电子邮件。我可以通过这种方式更改用户电子邮件:
var user = firebase.auth().currentUser;
user.updateEmail("user@example.com").then(function() {
// Update successful.
}).catch(function(error) {
// An error happened.
});
Run Code Online (Sandbox Code Playgroud)
然后我可以在以这种方式设置后验证电子邮件:
var user = firebase.auth().currentUser;
user.sendEmailVerification().then(function() {
// Email sent.
}).catch(function(error) {
// An error happened.
});
Run Code Online (Sandbox Code Playgroud)
我想要做的是在将电子邮件设置为用户主要电子邮件之前验证电子邮件。
我已经为 Firestore 编写了规则,但是,当文档不存在时,它会抛出“权限缺失或不足”错误。例如
firebase.firestore().collection('shipments').doc(order_doc_id)
.onSnapshot(fsResponse => {
...
)}
Run Code Online (Sandbox Code Playgroud)
order_doc_id当不存在时抛出“权限缺失或不足错误” 。
这是我的“shipments”集合的安全规则:
allow read: if request.auth != null && (resource.data.book_data.seller_id == request.auth.uid || resource.data.buyer_id == request.auth.uid)
Run Code Online (Sandbox Code Playgroud)
理想情况下,我希望它能够成功解决fsResponse.exists === false,然后向用户显示“未找到”屏幕,但事实并非如此,并且该错误没有说明文档的存在。
处理此案的正确方法是什么?