如果该用户有权访问该文件,如何在Firebase中拒绝该用户对该文件的访问?

时间:2019-01-11 04:59:23

标签: firebase firebase-security-rules

我们Django应用程序的用户可以回答问题并将文件附加到他们的答案中。

当前,我们正在尝试将文件存储移至Google Cloud Storage。我正在研究如何在Web客户端应用程序中使用Firebase SDK进行云存储。

Django模型(简体):

class User(models.Model):
    email = models.CharField(max_length=128)
    password = models.CharField(max_length=128)


class Question(models.Model):
    description = models.TextField()
    requester = models.ForeignKey(User, related_name='questions')


class Answer(models.Model):
    question = models.ForeignKey(Question, related_name='answers')
    responder = models.ForeignKey(User, related_name='answers')
    attached_file_id = models.IntegerField(null=True, blank=True)
    attached_file_storage_key = models.CharField(max_length=128, blank=True)  # path to file in a current storage. For example, /documents/image.jpg 
    attached_file_name = models.CharField(max_length=128, blank=True)

问题:在某些情况下,Firebase应该拒绝对问题请求者的访问,该访问是由响应者附加的文件。例如:请求者拒绝了答案,而响应者应再次回答该问题

我们不想从Google云端存储中删除任何文件,因此我们希望能够拒绝请求者访问文件。

我阅读了几篇与Firebase云存储安全规则有关的文章。 我也阅读了描述如何使用Firebase创建Web聊天应用程序的教程,但是本教程的某些部分(描述了如何编写Cloud Storage安全规则)只是说“允许阅读”。对于这个简单的应用程序就足够了。

我的问题是,如果该用户有权访问该文件,该如何拒绝该用户访问该文件。

0 个答案:

没有答案