java - 如何从当前登录的用户 Firebase、Android 中检索值

标签 java android firebase firebase-realtime-database

我无法从数据快照中检索任何值。我尝试了多种方法和技巧,但它给出了一个空值。

enter image description here

我的数据库的图像如上。 请参阅下面的代码,尝试记录一个值,一切似乎都正确但不起作用。

email = view.findViewById(R.id.email);
editTextfragmentF = view.findViewById(R.id.editText_firstname);
editTextfragmentL = view.findViewById(R.id.editText_lastname);

    FirebaseAuth mAuth = FirebaseAuth.getInstance();
    String UserID = mAuth.getCurrentUser().getUid();

    FirebaseDatabase database = FirebaseDatabase.getInstance();
    database.getReference().child("Users").child(UserID).addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
            if (mAuth.getCurrentUser() != null) {
                email.setText(mAuth.getCurrentUser().getEmail());

                //Gets current users first name
                String FN = String.valueOf(dataSnapshot.child("firstName").getValue());
                Log.i("First Name", FN);

                /*String LN = dataSnapshot.child("lastName").getValue().toString();
                Log.i("Last Name", LN);*/
                /*editTextfragmentF.setText(FN);
                editTextfragmentF.requestFocus();*/

                /*editTextfragmentL.setText(LN);
                editTextfragmentL.requestFocus();*/
            }
        }

结果:

enter image description here

最佳答案

你需要改变

database.getReference().child("Users").child(UserID).addChildEventListener

    database.getReference().child("Users").child(UserID).addValueEventListener(new ValueEventListener() {
      @Override
      public void onDataChange(DataSnapshot dataSnapshot) {
        email.setText(dataSnapshot.child("email").getValue(String.class));
        String FN = dataSnapshot.child("firstName").getValue(String.class);
        Log.i("First Name", FN);
      }

      @Override
      public void onCancelled(DatabaseError databaseError) {
        System.out.println("The read failed: " + databaseError.getCode());
      }
    });

确保您已在 AndroidManifest.xml 中授予互联网访问权限

<manifest xlmns:android...>
 ...
 <uses-permission android:name="android.permission.INTERNET" />
 <application ...
</manifest>

关于java - 如何从当前登录的用户 Firebase、Android 中检索值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58170904/

相关文章:

java - felix scr 注释中元类型属性的用例

java - 如何在两个不同的 JTextField 上选择文本?

java - 抽屉导航不使用 R.drawable.ic_drawer 或滑动关闭

ios - 为什么 Firebase 应用内消息不能在物理 iOS 设备上运行?

java - 如何让 Glide 与 Android Studio 3.0 配合使用?

java - 如果 JUnit 测试当前在套件中运行,如何让它们知道

android - 使用 FAST 检测可以更快地进行 SURF 描述?

android - Glide Gradle和FirebaseUI无法同步

firebase - 使用 Go 为 Remote Config REST API 验证服务帐户

java - Android:Firebase 数字增量