I build an application and I'm trying to retrieve user info from Firebase. After the registration form, I have a new activity where the users need to write their personal info and that information is stored in firebase. Then, in my navigation drawer, I have an activity, called "AccountActivity", where the user cand see their personal info saved into the database. I tried to write some code in order to do this, but when I try to access the AccountActivity, it is empty..doesn't retrieve user info from firebase and I get this error:
SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero-length
Do you know what is wrong and what can I do in order to fix it?
This is the data I have in firebase, in JSON format, so the database is not empty:
"User" : {
"cgIW3VyfDONZjgA0r8LfGNr1zEO2" : {
"age" : "30",
"gender" : "Male",
"height" : "170",
"username" : "Alex",
"weight" : "80"
},
"gLMP5YpLheQBWGxfyT5xcfOI9ii1" : {
"age" : "28",
"height" : "155",
"username" : "Ana",
"weight" : "60"
}
}
}
User class:
public class User {
public String username;
public String age;
public String weight;
public String height;
public String gender;
public User(){
}
public User(String username, String age, String weight, String height, String gender){
this.username = username;
this.age = age;
this.weight = weight;
this.height = height;
this.gender = gender;
}
public String getUsername() {
return username;
}
public String getAge() {
return age;
}
public String getWeight() {
return weight;
}
public String getHeight() {
return height;
}
public String getGender() {
return gender;
}
public void setUsername(String username) {
this.username = username;
}
public void setAge(String age) {
this.age = age;
}
public void setWeight(String weight) {
this.weight = weight;
}
public void setHeight(String height) {
this.height = height;
}
public void setGender(String gender) {
this.gender = gender;
}
}
AccountActivity:
public class AccountActivity extends AppCompatActivity {
ListView myListView;
ArrayAdapter<String> arrayAdapter;
DatabaseReference databaseReference;
FirebaseUser user;
List<String> itemList;
String userId;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_account);
myListView = findViewById(R.id.listView);
user = FirebaseAuth.getInstance().getCurrentUser();
userId = user.getUid();
itemList = new ArrayList<>();
databaseReference = FirebaseDatabase.getInstance().getReference();
userRef = databaseReference.child("User");
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot ds : dataSnapshot.getChildren()) {
User user = ds.getValue(User.class);
itemList.add(user.getUsername());
itemList.add(user.getAge());
itemList.add(user.getWeight());
itemList.add(user.getHeight());
itemList.add(user.getGender());
}
arrayAdapter = new ArrayAdapter<>(AccountActivity.this, android.R.layout.simple_list_item_1, itemList);
myListView.setAdapter(arrayAdapter);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
};
userRef.addListenerForSingleValueEvent(valueEventListener);
activity_account.xml:
android:id="@+id/textView"
android:layout_width="263dp"
android:layout_height="46dp"
android:text="@string/account_informations"
android:textColor="#FFFFFF"
android:textSize="30sp"
android:textStyle="bold|italic"
app:fontFamily="@font/alex_brush"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:id="@+id/tvUsernameDb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="178dp"
android:layout_marginLeft="178dp"
android:layout_marginTop="73dp"
android:layout_marginEnd="175dp"
android:layout_marginRight="175dp"
android:layout_marginBottom="539dp"
android:text="@string/textviewUsernameDb"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/constraintLayout" />
<TextView
android:id="@+id/tvAgeDb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="180dp"
android:layout_marginLeft="180dp"
android:layout_marginTop="51dp"
android:layout_marginEnd="173dp"
android:layout_marginRight="173dp"
android:layout_marginBottom="468dp"
android:text="@string/textviewAgeDb"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvUsernameDb" />
<TextView
android:id="@+id/tvWeightDb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="180dp"
android:layout_marginLeft="180dp"
android:layout_marginTop="47dp"
android:layout_marginEnd="173dp"
android:layout_marginRight="173dp"
android:layout_marginBottom="402dp"
android:text="@string/textviewWeightDb"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvAgeDb" />
<TextView
android:id="@+id/tvHeightDb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="181dp"
android:layout_marginLeft="181dp"
android:layout_marginTop="57dp"
android:layout_marginEnd="171dp"
android:layout_marginRight="171dp"
android:layout_marginBottom="325dp"
android:text="@string/textviewHeightDb"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvWeightDb" />
<TextView
android:id="@+id/tvGenderDb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="182dp"
android:layout_marginLeft="182dp"
android:layout_marginTop="54dp"
android:layout_marginEnd="171dp"
android:layout_marginRight="171dp"
android:layout_marginBottom="252dp"
android:text="@string/textviewGenderDb"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvHeightDb" />
In XML file, I put some text views, but with no text, just black space, and in string.xml I have something like this for each TextView form activity_account.xml:
<string name="textviewGenderDb">" "</string>
So my questions are: I didn't something wrong in the XML file, or the code is written is wrong? I don't know where is the problem and why I get this error. Thanks for your help!