我在firebase存储规则部分中有以下代码,它基本上允许对任何文件夹或任何文件夹路径的读/写操作,因为我理解它..
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write: if request.auth == null;
}
}
}
我有一个javascript代码,可以将文件上传到此存储数据库,代码如下:
// create storage reference
var storageRef = firebase.storage().ref("Nurse/"+ file.name)
//upload file
var task = storageRef.put(file)
我可以将文件上传到存储数据库中的“护士”文件夹。
我希望只允许经过身份验证的用户在此引用中写入/读取(上载/下载文件)。
我的规则代码如下所示:
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write: if request.auth != null;
}
}
}
现在,我需要通过经过身份验证的用户上传/下载文件的Javascript代码类型..
请帮忙!
答案 0 :(得分:1)
如果您为项目实施了身份验证,并且假设您想要使用电子邮件和密码对用户进行身份验证,则可以执行类似
的操作firebase.auth().signInWithEmailAndPassword(email, password).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
// ...
});
对用户进行身份验证后,您可以使用上述代码上传文件。
详细了解here上的用户身份验证。您可以实施Google身份验证,Facebook身份验证,Github身份验证,Twitter身份验证,电话号码和自定义电子邮件登录。