Я пытаюсь получить детей из моего JSON отдельно и передать их через намерение. Вот как отформатирован мой JSON:
"allDeeJays" : {
"-LeP1DB6Onzh4-UiN_0E" : {
"acct" : "Aaron A",
"djName" : "uhgvvvbbb"
}
},
Используя DataSnapshot, я смог получить значения djName
, но я не получаю значения acct
со следующим кодом:
@Override
protected void onBindViewHolder(@NonNull ResultsViewHolder holder, final int position, @NonNull final DataSnapshot snapshot) {
// Here you convert the DataSnapshot to whatever data your ViewHolder needs
String s = "";
for(DataSnapshot ds : snapshot.getChildren())
{
s = ds.getValue(String.class);
DjProfile model = new DjProfile(s);
model.setDjName(s);
holder.setDjProfile(model);
}
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view)
{
DatabaseReference ref = FirebaseDatabase.getInstance().getReference("allDeeJays");
String acct = "";
String name = "";
for(DataSnapshot ds : snapshot.getChildren())
{
name = ds.getValue(String.class);
acct = ds.getValue(String.class);
DjProfile model = new DjProfile(name);
model.setDjName(name);
}
Intent i = new Intent(getApplication(), AddSongRequest.class);
i.putExtra("DjName", name);
i.putExtra("UserAcct", acct);
startActivity(i);
}
});
}
};
Наконец, мой класс DjProfile определен следующим образом:
пакет com.example.android.heydj;
import com.google.firebase.database.Exclude;
import com.google.firebase.database.PropertyName;
public class DjProfile
{
String djName;
String key;
public DjProfile(String djName)
{
this.djName = djName;
}
public DjProfile(){}
public void setDjName(String djName)
{
this.djName = djName;
}
public String getdjName()
{
return djName;
}
}
Обе переменные возвращают одно и то же значение, и когда я запускаю snapshot.getChildrenCount()
, он говорит, что есть два потомка (я полагаю, это acct и djName). Нужно ли добавлять дополнительные геттеры и сеттеры для имени учетной записи? Любая помощь с благодарностью:)