firebase规则,android,硬编码将凭据写入App,因此没有登录

时间:2016-06-24 14:38:23

标签: android firebase firebase-realtime-database firebase-authentication

我正在开发一款可在5到10部手机上运行的ANDROID / FIREBASE应用。它适用于我们的卡车司机,仅供私人使用。这些司机以前从未有过电话,更不用说电子邮件,所以不要记得他们的登录凭证。他们几乎不说英语。

所以我想在ANDROID应用程序中硬编码某种身份验证方法,因此没有真正的登录,但我仍然可以写入Firebase数据库。我不想让这个世界开放,所以我确实想要写规则。我也想用read,write做一个WEB应用程序。这是一个不寻常的案例,但我可以想到这样的其他案例。我有另一个项目,我想控制READ

我见过this answer ......(但已经3岁了)

我在考虑做类似的事情。

if(timeString.formatmethod()==format3){
  def modifiedTimeString = timeString.substring(0,3)+" AM"; 
} 

但我不确定如何将ValFromAndroidApp从手机传递到规则引擎。

我还在考虑使用VALIDATE " .validate":AllowTruckDriversWrite(ValFromAndroidApp)

我仍在尝试这些规则......寻找更多关于它们的文档。有没有人有一些建议,想法,如何设置这样的规则的想法?也许有人可以清理规则代码?非常感谢

1 个答案:

答案 0 :(得分:2)

我相信如果您真的为他们创建用户,拿走他们的手机,登录应用但不在应用中提供注销选项会更好。通过这种方式,除非他们真的卸载应用程序,否则应用程序将不会注销,您可以跟踪每个驱动程序。即使手机出现问题,您也可以直接在新手机上重新登录而不会丢失任何数据。 由于应用程序是私有的,因此每个用户的userId(uid)都取决于您,您可以拥有以下规则:

"users":{
  "$uid":{
    ".read": true,
    ".write": "auth.uid == $uid"

  }
}

或者也许:

"users":{
  "$uid":{
    ".read": true,
    ".write": "auth.uid != null"

  }
}

我只是觉得这可能会有所帮助。希望我的回答不是很愚蠢。 ; - )