如何在Java Android中获取当前用户的子值
我有一个社交媒体应用程序,但从用户角度来看,它应该是一对一的好友比例,而不是一对多。我需要能够从孩子“已连接配偶”中提取信息,我似乎遇到了麻烦。我发现了一些我目前正在使用的代码,但它同时吸引了所有的用户和孩子。我只想获取当前用户的信息。如何使用valueeventlistener(或其他工具)仅为当前用户从“ConnectedPartner”子项中提取信息 这是我的Firebase数据库: 这是我的密码:如何在Java Android中获取当前用户的子值,java,parent-child,Java,Parent Child,我有一个社交媒体应用程序,但从用户角度来看,它应该是一对一的好友比例,而不是一对多。我需要能够从孩子“已连接配偶”中提取信息,我似乎遇到了麻烦。我发现了一些我目前正在使用的代码,但它同时吸引了所有的用户和孩子。我只想获取当前用户的信息。如何使用valueeventlistener(或其他工具)仅为当前用户从“ConnectedPartner”子项中提取信息 这是我的Firebase数据库: 这是我的密码: public class GetUsernames extends AppCompatA
public class GetUsernames extends AppCompatActivity {
ArrayList<String> array = new ArrayList<>();
ArrayAdapter adapter;
ArrayList<String> sparray = new ArrayList<>();
ArrayAdapter spadapter;
String user = FirebaseAuth.getInstance().getCurrentUser().getEmail();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_get_usernames);
setTitle("" + user);
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference usersdRef = rootRef.child("users");
DatabaseReference spousedRef = rootRef.child("users");
ValueEventListener seventListener = new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot ds : dataSnapshot.getChildren()){
String connectsp = ds.child("connectedspouse").getValue(String.class);
Log.i("SP TAG", "Current Connected Spouses are -> " + connectsp);
sparray.add(connectsp);
}
final ListView spListView = findViewById(R.id.sListView);
spadapter = new ArrayAdapter(GetUsernames.this, android.R.layout.simple_list_item_1, sparray);
spListView.setAdapter(spadapter);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
};
ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot ds : dataSnapshot.getChildren()) {
String names = ds.child("email").getValue(String.class);
Log.i("TAG", "Current Users are => " + names);
array.add(names);
}
final ListView useristView = findViewById(R.id.uListView);
adapter = new ArrayAdapter(GetUsernames.this, android.R.layout.simple_list_item_1,array);
useristView.setAdapter(adapter);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
};
usersdRef.addListenerForSingleValueEvent(eventListener);
spousedRef.addListenerForSingleValueEvent(seventListener);
}
}
public类GetUsernames扩展了AppCompative活动{
ArrayList数组=新的ArrayList();
阵列适配器;
ArrayList sparray=新的ArrayList();
ArrayAdapter spadapter;
字符串user=FirebaseAuth.getInstance().getCurrentUser().getEmail();
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u get\u用户名);
setTitle(“+”用户);
DatabaseReference rootRef=FirebaseDatabase.getInstance().getReference();
DatabaseReference usersdRef=rootRef.child(“用户”);
DatabaseReference-spoosedref=rootRef.child(“用户”);
ValueEventListener seventListener=新的ValueEventListener(){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
对于(DataSnapshot ds:DataSnapshot.getChildren()){
String connectsp=ds.child(“connectedparty”).getValue(String.class);
Log.i(“SP标签”,“当前连接的配偶为->”+连接SP);
sparray.add(connectsp);
}
最终列表视图spListView=findViewById(R.id.sListView);
spadapter=newArrayAdapter(GetUsernames.this,android.R.layout.simple\u list\u item\u 1,sparray);
spListView.setAdapter(spadapter);
}
@凌驾
已取消的公共void(@NonNull DatabaseError DatabaseError){
}
};
ValueEventListener eventListener=新的ValueEventListener(){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
对于(DataSnapshot ds:DataSnapshot.getChildren()){
String name=ds.child(“email”).getValue(String.class);
Log.i(“标记”,“当前用户=>”+名称);
数组。添加(名称);
}
最终列表视图useristView=findviewbyd(R.id.uListView);
adapter=newarrayadapter(GetUsernames.this,android.R.layout.simple\u list\u item\u 1,数组);
setAdapter(适配器);
}
@凌驾
已取消的公共void(DatabaseError DatabaseError){
}
};
UsersRef.addListenerForSingleValueEvent(eventListener);
SpuesedRef.addListenerForSingleValueEvent(seventListener);
}
}
这是我的XML
<ListView
android:id="@+id/sListView"
android:layout_width="match_parent"
android:layout_height="275dp"
android:layout_marginTop="50dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ListView
android:id="@+id/uListView"
android:layout_width="match_parent"
android:layout_height="275dp"
android:layout_marginTop="100dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/sListView" />
这是AVD的输出,它当前打印所有用户和连接的配偶。我希望它只打印当前用户及其已连接的配偶
再次感谢您事先的帮助