Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为管理员而非Firebase用户显示按钮是否正确?_Java_Android_Firebase_Google Cloud Firestore - Fatal编程技术网

Java 为管理员而非Firebase用户显示按钮是否正确?

Java 为管理员而非Firebase用户显示按钮是否正确?,java,android,firebase,google-cloud-firestore,Java,Android,Firebase,Google Cloud Firestore,在我的Android应用程序中,我有两种类型的用户,管理员(只有一种)和用户。在数据库中,我有一个布尔值admin,如下所示: db |_ Users |_ uid | |_ admin: true (only one) |_ uid | |_ admin: false |_ uid |_ admin: false 登录后,所有用户都会重定向到MainActivity。但是,如果用户是admin,我会在菜单中显示一个按钮,否则我会

在我的Android应用程序中,我有两种类型的用户,管理员(只有一种)和用户。在数据库中,我有一个布尔值
admin
,如下所示:

db
|_ Users
    |_ uid
    |   |_ admin: true (only one)
    |_ uid
    |   |_ admin: false
    |_ uid
        |_ admin: false

登录后,所有用户都会重定向到MainActivity。但是,如果用户是admin,我会在菜单中显示一个按钮,否则我会为其他用户禁用该按钮。基本上,此按钮打开一个活动,管理员可以在其中更改Firebase中的某些值。有没有聪明的办法?普通用户是否可以打开该活动并执行管理员可以执行的操作?谢谢

为了安全起见,你应该假设有人能够对你的应用程序代码进行反向工程和破解。安全防止用户做他们不应该做的事情的唯一方法是使用您控制的后端来检查他们的权限,并在允许的情况下执行操作


由于您在google cloud firestore中标记了这个问题,因此值得注意的是,您还提供了一个控制措施,以确定谁可以在firestore中进行哪些更改。

感谢您的回答。所以你说我可以在我的Android应用程序中保留这个按钮,并使用安全规则来保护数据,不允许非管理员在数据库中写入数据,对吗?当然,你可以在应用程序中做任何你想做的事。只需确保访问是按照您在后端要求的方式控制的。