Firebase存储:仅允许对经过身份验证的用户进行写入/读取?

时间:2018-05-15 10:49:49

标签: javascript firebase firebase-storage firebase-security-rules

我在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代码类型..

请帮忙!

1 个答案:

答案 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身份验证,电话号码和自定义电子邮件登录。