java - Firebase 数据库和 Firebase Firestore 数据操作和检索数据的问题

标签 java android firebase firebase-realtime-database

我的查询是,我想在 Firebase 实时数据库中保存一些数据,以便我能够调用这些数据。请记住,即使用户重新安装应用程序,并且每个用户都会有一个特定的 child ,他们也应该能够调用数据。

我正在尝试制作一个应用程序,用户将在其中输入或保存数据到 Firebase 并将其显示在应用程序上,但是,问题是我不知道如何从 Firebase 检索数据。

我要检索的数据是我保存在里面的ItemName

child(uid).child(ItemName);

每个用户将在不同的 ItemName 中使用不同的 uid 保存数据。

问题是,我将如何检索每个用户的 ItemName,因为 ItemName 会有所不同,因此我不会获得特定用户的 ItemName 的任何数据。如果我将 ItemName 保存在 SharedPreferences 中,我将能够检索它,但是,如果用户格式化其手机或卸载并重新安装应用程序,那么 SharedPreference 数据将被删除,那么我将如何从 Firebase 检索特定的 ITEMNAME 数据用户来显示它。

我的代码示例:

String email= mAuth.getCurrentUser().getUid();
dbFirestore= FirebaseFirestore.getInstance();
userReference= FirebaseDatabase.getInstance().getReference().child("Users").child(itemName);

enter image description here

如果我们将路径重定向到那里,是否有任何方法或函数可以在不指定子路径名(如默认路径)的情况下检索数据

databaseReference = FirebaseDatabase.getInstance().getReference().child(uid).child(""); 

类似的东西。或者有没有其他方法可以做到这一点。

enter image description here

最佳答案

对于这些值,在不知道中间节点名称的情况下,请使用以下代码行:

String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference uidRef = rootRef.child(uid);
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String friedChicken = ds.getKey();
            String foodType = ds.child("food_TYPE").getValue(String.class);
            Log.d("TAG", friedChicken + "/" + foodType);
        }
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
        Log.d("TAG", databaseError.getMessage()); //Don't ignore errors!
    }
};
uidRef.addListenerForSingleValueEvent(valueEventListener);

logcat 中的输出将是:

Fried Chicken / Non-Veg

和我获取food_TYPE的值一样,你也可以获取其他的值。

关于java - Firebase 数据库和 Firebase Firestore 数据操作和检索数据的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61158614/

相关文章:

java - 如何从 Java 中的 XML 中读取带有等号的属性标记?

java - Firebase .indexOn 未按预期工作

android - APK 需要有效的隐私政策和显着的披露

android - 无法使用 MPAndroidChart 库优化折线图

android - 在哪里可以看到现有应用程序的 Firebase 崩溃报告

swift - 传递 Firebase 数据库引用数据

java - Hibernate 域对象生成

java - JaxB 解码自定义 xml

java - 如何在tomcat中自动部署war文件

android - 为什么要选择约束布局,因为我们已经有了相对布局?