为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Smart猫小萌 2023-09-13 16:52:42
我无法从数据快照中检索任何值。我尝试了多种方法和技巧,但它给出了一个空值。我的数据库的图像如上。请参阅下面的代码,尝试记录一个值,一切似乎都正确但不起作用。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();*/            }        }结果:
查看完整描述

2 回答

?
浮云间

TA贡献1829条经验 获得超4个赞

你需要改变


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>


查看完整回答
反对 回复 2023-09-13
?
慕神8447489

TA贡献1780条经验 获得超1个赞

getValue() 接受要返回的对象的类型。在您的情况下,您正在获取一个字符串值,因此只需将 String.class 传递到方法中,然后将其保存到 String 变量中。

String firstname=dataSnapshot.getValue(String.class);
Log.i("First Name", firstname);


查看完整回答
反对 回复 2023-09-13
  • 2 回答
  • 0 关注
  • 79 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信