微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在使用 Android Studio 登录/注册活动后从 Firebase 读取当前用户以创建简单的个人资料活动

如何解决如何在使用 Android Studio 登录/注册活动后从 Firebase 读取当前用户以创建简单的个人资料活动

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

import com.example.roedash.Models.Person;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;

import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;

import java.util.ArrayList;
import java.util.List;

public class Profile extends AppCompatActivity {
    
    ImageView logo;
    Button logout;
    TextView id,fn,sn,email;
    DatabaseReference dbref;
    FirebaseUser student;
    List<String> itemList;
    String uid;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_profile);
        logo = findViewById(R.id.iv_logo_Profile);
        logout = findViewById(R.id.btn_logout);
        student = FirebaseAuth.getInstance().getCurrentUser();
        uid = student.getUid();
        itemList = new ArrayList<>();

        id = findViewById(R.id.tv_Id_Profile);
        fn = findViewById(R.id.tv_fn_profile);
        sn = findViewById(R.id.tv_sn_Profile);
        email = findViewById(R.id.tv_email_profile);
        dbref = FirebaseDatabase.getInstance().getReference("_person_");
        dbref.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot snapshot) {
                itemList.clear();
                String studentId = snapshot.child(uid).child("id").getValue(String.class);
                String sfName = snapshot.child(uid).child("fn").getValue(String.class);
                String sName = snapshot.child(uid).child("sn").getValue(String.class);
                String emailAddress = snapshot.child(uid).child("em").getValue(String.class);
                itemList.add(studentId);
                itemList.add(sfName);
                itemList.add(sName);
                itemList.add(emailAddress);
            }

            @Override
            public void onCancelled(@NonNull DatabaseError error) {

            }
        });
        logout.setonClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                Intent i = new Intent(Profile.this,Mainactivitylogin.class);
                startActivity(i);
            }
        });
        logo.setonClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                Intent i = new Intent(Profile.this,Dashboard.class);
                startActivity(i);
            }
        });

    }
}

我正在努力从 Firebase 数据库调用用户记录,一旦用户登录注册,记录应显示在 Profile 活动中。我尝试了几种不同的方法,但都没有奏效,我想我错过了一些小东西,但找不到究竟是什么。用户注册时成功添加并且数据库 ID 的名称是正确的。请帮忙!

这是来自控制台 - 类 Person -MVXdjNUHA-NfJ4oKLXJ em: fn: ID: SN: -MVphfQK29jP5RelZViy em: fn: ID: sn:

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。