2021年2月2日星期二

RecyclerView using FirestoreRecyclerAdapter not getting the data from same user on different mobiles/emulator

I'm building an app to create travel and show travel information, I have an activity to shows all the travels created by the user, but the problem is, I can only see the travels information, on the phone/emulator that I created the travel, even though I login with the same user on different phone/emulator and using the cloud firestore.

Here is the code of my TravelActivity (the one that has the recyclerView with user travels)

import android.content.Intent;  import android.os.Bundle;  import android.view.MenuItem;  import android.widget.Toast;    import androidx.annotation.NonNull;  import androidx.appcompat.app.AppCompatActivity;  import androidx.recyclerview.widget.ItemTouchHelper;  import androidx.recyclerview.widget.LinearLayoutManager;  import androidx.recyclerview.widget.RecyclerView;    import com.firebase.ui.firestore.FirestoreRecyclerOptions;  import com.google.android.material.bottomnavigation.BottomNavigationView;  import com.google.firebase.auth.FirebaseAuth;  import com.google.firebase.firestore.CollectionReference;  import com.google.firebase.firestore.FirebaseFirestore;  import com.google.firebase.firestore.Query;    public class TravelsActivity extends AppCompatActivity implements BottomNavigationView.OnNavigationItemSelectedListener {        private FirebaseFirestore db = FirebaseFirestore.getInstance();      private CollectionReference travelRef = db.collection("travels");        private TravelAdapter adapter;        @Override      protected void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.activity_travels);            BottomNavigationView bottomNavigationView = findViewById(R.id.bottom_navigation);          bottomNavigationView.setSelectedItemId(R.id.searchNav);          bottomNavigationView.setOnNavigationItemSelectedListener(this);            Toast.makeText(this, "Sim", Toast.LENGTH_SHORT).show();          setUpRecyclerView();      }        private void setUpRecyclerView() {            Query query = travelRef.orderBy("timestamp", Query.Direction.DESCENDING)                  .whereEqualTo("userID", FirebaseAuth.getInstance().getCurrentUser().getUid())                  .whereGreaterThanOrEqualTo("timestamp", System.currentTimeMillis());                  FirestoreRecyclerOptions<Travel> options = new FirestoreRecyclerOptions.Builder<Travel>()                  .setQuery(query, Travel.class).build();            //Toast.makeText(this, "Options: "+options.toString().length() , Toast.LENGTH_SHORT).show();            adapter = new TravelAdapter(options);            RecyclerView recyclerView = findViewById(R.id.travels_recycler_view);          recyclerView.setHasFixedSize(true);          recyclerView.setLayoutManager(new LinearLayoutManager(this));          recyclerView.setAdapter(adapter);            new ItemTouchHelper(new ItemTouchHelper.SimpleCallback(0,                  ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) {              @Override              public boolean onMove(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder, @NonNull RecyclerView.ViewHolder target) {                  return false;              }                @Override              public void onSwiped(@NonNull RecyclerView.ViewHolder viewHolder, int direction) {                  adapter.deleteItem(viewHolder.getAdapterPosition());                  adapter.notifyDataSetChanged();              }          }).attachToRecyclerView(recyclerView);      }        @Override      protected void onStart() {          super.onStart();          adapter.startListening();      }        @Override      protected void onStop() {          super.onStop();          adapter.stopListening();      }  
https://stackoverflow.com/questions/66020274/recyclerview-using-firestorerecycleradapter-not-getting-the-data-from-same-user February 03, 2021 at 10:07AM

没有评论:

发表评论