У меня возникают проблемы при попытке получить данные из базы данных Firebase.Я хочу отобразить его в ListView.Когда я перехожу из Действия входа в систему (после успешного входа в систему) в Общее действие (в которое я помещаю ListView), ListView не отображается, и действие переключается из Общего в вход в систему через несколько секунд.
**Login Activity snippet**
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_loginpage);
userRegistration = (TextView)findViewById(R.id.tvRegister);
LName = (EditText)findViewById(R.id.btnName);
LPass = (EditText)findViewById(R.id.btnPass);
LSignIn = (Button) findViewById(R.id.btnSignIn);
Info = (TextView) findViewById(R.id.tvInfo);
Info.setText( " No of attempts remaining: 3 " );
firebaseAuth = FirebaseAuth.getInstance();
progressDialog = new ProgressDialog(this);
FirebaseUser user= null;
if(user!=null){
finish();
startActivity(new Intent(LoginPage.this,General.class));
}
user = firebaseAuth.getCurrentUser();
LSignIn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
validate(LName.getText().toString(),LPass.getText().toString());
}
});
userRegistration.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(LoginPage.this,Registration.class));
}
});
**General Activity snippet**
public class General extends AppCompatActivity {
private FirebaseAuth firebaseAuth;
private Button Logout;
ListView l1;
ArrayAdapter<String> adapter;
DatabaseReference databaseReference;
FirebaseUser user;
List<String> itemlist;
String uid;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_general);
firebaseAuth = FirebaseAuth.getInstance();
Logout = (Button) findViewById(R.id.btnLogout);
l1 = (ListView)findViewById(R.id.listView);
user = FirebaseAuth.getInstance().getCurrentUser();
uid = user.getUid();
itemlist = new ArrayList<>();
databaseReference = FirebaseDatabase.getInstance().getReference();
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
itemlist.clear();;
String user_name = dataSnapshot.child(uid).child("usrName").getValue(String.class);
String user_email = dataSnapshot.child(uid).child("ursEmail").getValue(String.class);
itemlist.add(user_name);
itemlist.add(user_email);
adapter = new ArrayAdapter<>(General.this,android.R.layout.simple_list_item_1,itemlist);
l1.setAdapter(adapter);
}
**Firebase Auth and Database**
[enter image description here][1]
[enter image description here][2]
**XML file with the ListView**
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/myApp"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".General">
<Button
android:id="@+id/btnLogout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:layout_marginBottom="8dp"
android:text="LOGOUT"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.467"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/listView" />
<ListView
android:id="@+id/listView"
android:layout_width="368dp"
android:layout_height="270dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
Дизайн
введите описание изображения здесь