【问题标题】:Firebase authentication - Display user infoFirebase 身份验证 - 显示用户信息
【发布时间】:2019-05-23 18:32:50
【问题描述】:

我使用 firebase 实时数据库来存储用户信息。

这是数据库的图片: screenshot of the database

例如,如何根据连接的用户获取值“nombre_dons”以在应用程序中显示?我在java中使用android studio。

提前感谢您的帮助

【问题讨论】:

  • 嘿@delphinisoardi 我的回答是否帮助您解决了问题?
  • @PradyumanDixit 非常感谢它有效!

标签: java android firebase firebase-realtime-database


【解决方案1】:

您数据库中Users 节点中用户数据的那些父字符串看起来像uids。如果确实如此,那么您需要做的就是从这些uids 中为特定用户检索数据。

我所说的在代码中看起来像这样:

DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("Users");

FirebaseAuth mAuth = FirebaseAuth.getInstance();

ref.child(mAuth.getUid()).addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                String data = dataSnapshot.child("nombre_dons").getValue(String.class);

            }

            @Override
            public void onCancelled(DatabaseError databaseError) {
                Log.d(TAG, "onCancelled", databaseError.toException());
            }

   });

我可以在您的数据库图像中看到的一个缺陷是您的 Users 节点中第二个用户中的 nombre_dons 子级具有大写 N,这将是一个问题,因为 Firebase 区分大小写。我建议你和其他人一样。

【讨论】:

    【解决方案2】:

    假设数据库中“用户”内的密钥是 Firebase 身份验证用户 ID,您可以按照以下步骤操作 - 1.获取当前用户的UID。 2. 获取相同的数据。

    使用 Javascript -

    var uid = firebase.auth().currentUser.uid;
    firebase.database().ref('/Users/' + uid).once('value').then(function(snapshot){
        var nombre_dons = snapshot.val().nombre_dons;
    });
    

    【讨论】:

    • OP 在 android 和 java 的上下文中询问这个问题。
    猜你喜欢
    • 2020-12-04
    • 1970-01-01
    • 1970-01-01
    • 2017-08-13
    • 1970-01-01
    • 1970-01-01
    • 2020-05-06
    • 2016-08-10
    • 2021-07-31
    相关资源
    最近更新 更多