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