如何解决如何在使用 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 举报,一经查实,本站将立刻删除。