如何在javaandroid中获取当前用户的子值

uelo1irk  于 2021-07-12  发布在  Java
关注(0)|答案(0)|浏览(181)

我有这个应用程序,这是一个社交媒体应用程序,但它应该是一个朋友比一个从用户的Angular 来看,而不是一对多。我需要能够拉的信息从孩子“连接配偶”,我似乎有麻烦。我发现一些代码,我目前正在使用,但它拉所有的用户和儿童在同一时间。我只想获取当前用户的信息。如何使用valueeventlistener(或其他东西)仅为当前用户从“connectedpartner”子级提取信息?
这是我的firebase数据库:firebase数据库用户和子数据库
这是我的密码:

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);
   }
   }

这是我的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的输出,它当前打印所有用户和连接的配偶。我希望它只打印当前用户和它的连接配偶avd输出
再次感谢您的帮助!!!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题