【问题标题】:Retrieve data from Firebase based on information根据信息从 Firebase 检索数据
【发布时间】:2021-05-11 10:41:40
【问题描述】:

我是 Android 开发和 Firebase 的新手。我有一个数据库,用于存储有关员工的信息(例如姓名、部门等)屏幕它只会检索该员工的数据。到目前为止还没有尝试过任何东西,因为我不知道从哪里开始,我只知道基本的向 Firebase 发送/检索数据。我不要求解决方案,我要求的是一个想法,一些可以帮助我记录自己的东西。

提前致谢。

【问题讨论】:

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


    【解决方案1】:

    我想创建一个“登录系统”,例如在其中引入一个名称

    如果您想要为您的用户提供“登录系统”,我推荐您authenticate them with Firebase。您可以选择不同类型的身份验证。您可以选择实施电子邮件和密码身份验证,也可以选择使用现有提供商之一,如 Google、Facebook、Twitter 等。除了您从身份验证过程中获得的数据,更准确地说是从FirebaseUser 对象中获得的数据,您还可以自己在数据库中添加其他信息,例如姓名、性别等。

    在 Firebase 实时数据库中存储此数据的推荐架构可能是:

    Firebase-root
      |
      --- users
           |
           --- $uid
                |
                --- name: "Emanuel"
                |
                --- gender: "male"
                |
                --- email: "emanuel@gmail.com"
                |
                --- age: 25"
    

    以下是关于如何将数据写入数据库的官方文档:

    https://firebase.google.com/docs/database/android/read-and-write#basic_write

    简而言之,要仅读取特定用户的数据,您应该创建一个指向 UID 节点的引用并附加一个侦听器,如以下代码行所示:

    String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
    DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
    DatabaseReference usersRef = rootRef.child("users");
    DatabaseReference uidRef = rootRef.child(uid);
    uidRef.get().addOnCompleteListener(new OnCompleteListener<DataSnapshot>() {
        @Override
        public void onComplete(@NonNull Task<DataSnapshot> task) {
            if (task.isSuccessful()) {
                String name = task.getResult().child("name").getValue(String.class);
                Log.d("TAG", name);
            } else {
                Log.d(TAG, task.getException().getMessage()); //Don't ignore potential errors!
            }
        }
    });
    

    【讨论】:

    • 感谢您提供深入的信息。会有很大帮助的。
    • 很高兴听到这个消息。不客气,伊曼纽尔!
    猜你喜欢
    • 2018-03-11
    • 1970-01-01
    • 1970-01-01
    • 2017-08-15
    • 2017-10-14
    • 1970-01-01
    • 1970-01-01
    • 2019-07-18
    • 1970-01-01
    相关资源
    最近更新 更多