java - 如何专门在firebase中获取用户数据
问题描述
我正在开发一个应用程序,每个用户必须先登录,然后他们才能添加一些对象。他们创建的每个对象都将保存在 firebase 上。但我想分开用户的对象!例如,如果用户 A 保存 X 和用户 B 保存 Y ,他们只能访问他们的对象(用户 A 必须只能访问 X),但我不知道为什么有人添加任何其他人可以访问它的东西!有什么想法吗?
解决方案
为了达到您的标准,向您的对象节点添加一个名为 user(添加该对象的用户)的子属性,然后您可以在以这种方式请求数据时进行过滤:
DatabaseReference mDatabaseReference = FirebaseDatabase.getInstance().getReference("Object");
Query query = mDatabaseReference.orderByChild("user").equalTo("the_user_name").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot datas: dataSnapshot.getChildren()){
//here you get your object data
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
推荐阅读
- php - 在表单中用作 GET 的多个 OPTION 值
- javascript - 从跨度到输入动态(onchange)操作值?
- python - 是否保证迭代相同的frozenset 总是以相同的顺序生成项目?(Python 3)
- maven - docker-maven-plugin:如何从`docker run ... -e 传递环境变量
` 构建或运行步骤? - r - 将我简单的“for循环”转换为应用函数
- c# - 如何移动到下一个 100 副本存储库?
- python - 在 python 中实现 if-then 逻辑时出现 TypeError 问题
- python - 继承(抽象)类时如何处理微小但影响深远的实现差异?
- c - 手动编译并与make链接后“找不到文件或文件夹”
- excel - 使用特定标准对 Excel 值进行分组