Java 如何显示每个用户';数据基于他们的谷歌账户——Firebase
我目前正在Android Studio上构建一个待办应用程序。我的Firebase数据库有问题。我想做的是,每个用户都有一个基于谷歌登录的唯一id,以便只查看自己的数据。目前,在我的应用程序上,每个人都可以看到任何人的任务。在Firebase上,我使用实时数据库,通过“用户”的一个子项和“任务+随机数”的另一个子项来指定它。此外,我已经在我的应用程序发布时添加了谷歌登录按钮 当前数据库: “我的层次结构”的目标示例:Java 如何显示每个用户';数据基于他们的谷歌账户——Firebase,java,android,firebase,android-studio,Java,Android,Firebase,Android Studio,我目前正在Android Studio上构建一个待办应用程序。我的Firebase数据库有问题。我想做的是,每个用户都有一个基于谷歌登录的唯一id,以便只查看自己的数据。目前,在我的应用程序上,每个人都可以看到任何人的任务。在Firebase上,我使用实时数据库,通过“用户”的一个子项和“任务+随机数”的另一个子项来指定它。此外,我已经在我的应用程序发布时添加了谷歌登录按钮 当前数据库: “我的层次结构”的目标示例: 根据您的评论,要仅获取与特定用户对应的任务对象,请使用以下代码行: Stri
根据您的评论,要仅获取与特定用户对应的任务对象,请使用以下代码行:
String userId = "User-13294";
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference tasksRef = rootRef.child("Users").child(userId).child("Tasks");
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot taskSnapshot : dataSnapshot.getChildren()) {
String title = taskSnapshot.child("title").getValue(String.class);
Log.d("TAG", title);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.d("TAG", databaseError.getMessage()); //Don't ignore potential errors!
}
};
tasksRef.addListenerForSingleValueEvent(valueEventListener);
由于User-13294
只有一个任务,因此logcat中的结果将只有一个标题:
Swimming
这段代码中到底有什么不符合您的预期?您好。谢谢你的评论。我的代码一切正常。让我解释一下,每当我在Firebase数据库上创建任务时,它都会显示为“任务-”随机数,问题是我创建的每个任务都会显示在其他每个用户身上。我想做的是根据每个用户的Google帐户(我已经创建了登录方法)为每个用户指定一个唯一的id,通过这样做,每个用户将只能看到他们自己的任务。请将您的数据库结构添加为JSON文件或至少一个屏幕截图,并指明您要获取的确切数据。@AlexMamo我已更新了我的帖子并添加了一些屏幕截图。示例是我想对Java类的代码执行的操作。您想要的确切数据是什么得到?非常感谢!