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
没有评论:
发表评论