在没有登录屏幕的情况下验证用户?

时间:2017-12-09 22:02:28

标签: android security firebase authentication firebase-authentication

TL; DR:如何让我的用户只需读取/写入我的Firebase存储而无需实现整个登录屏幕?

我正在使用Firebase存储创建一个简单的应用程序,将用户照片上传到存储空间,并为用户提供图像链接。当我公开我的规则时,该应用程序正常工作:

service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write: if true;
    }
  }
}

但是,仅允许已安装我的应用的用户将图像上传到存储空间(写入权限)。不应允许其他人访问我的存储桶读/写。

对于此任务,我已将安全规则更新为以下内容:

service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write: if request.auth != null;
    }
  }
}

但是,我不想只是为了验证我的用户而添加整个登录屏幕。如何在后台验证我的用户而无需实现登录屏幕?

PS:使用phone number将是完美的,但是,还需要将文本发送给用户,并且我试图在整个身份验证过程中尽可能少地进行用户交互。

2 个答案:

答案 0 :(得分:2)

来自documentation

  

您可以使用Firebase身份验证来创建和使用临时身份验证   要使用Firebase进行身份验证的匿名帐户。这些暂时的   匿名帐户可用于允许尚未签名的用户   由您的应用程序处理受安全规则保护的数据。如果   匿名用户决定注册您的应用,您可以链接他们的   登录匿名帐户的凭据,以便他们可以继续   在未来的会议中使用受保护的数据。

答案 1 :(得分:0)

黑客将是创建一个用户,并在应用程序的启动画面中或第一个屏幕使用硬编码凭据进行身份验证。

<强>优势:

你实现了你想要的目标

<强>缺点:

所有用户都被firebase视为同一个人,这不是最佳做法

相关问题