当我过滤Firestore数据时,我仍然得到很大的子集,并希望对这些数据进行分页。但是默认的firestore分页查询(startAfter / endAfter)无法结合我的经验中的where子句。
我知道如何在Firestore中过滤数据,也知道如何分页。但是我很想将这些功能结合起来,有人可以帮助我实现这一目标。或至少在需要时如何重组我的数据。
@RunWith(JUnit4.class)
public class DbManagerAndroidTest
{
private AudioFile.AudioFileDao audioFileDao;
private DbManager db;
@Before
public void createDb()
{
Context ctx = InstrumentationRegistry.getInstrumentation().getContext();
db = Room.inMemoryDatabaseBuilder(ctx, DbManager.class).build();
audioFileDao = db.audioFileDao();
}
/**
* Test CRUD
*/
@Test
public void writeAndRead()
{
AudioFile audioFile = new AudioFile.Builder("title")
.withArtist("artist")
.withDuration(5)
.withPath("/this/is/path")
.build();
audioFileDao.insertAudioFile(audioFile);
assertTrue(db.audioFileDao().getAll().size() > 0);
assertEquals("title", db.audioFileDao().getAll().get(0).getTitle());
audioFile.setArtist("yo-mama");
//It won´t update
audioFileDao.updateAudioFile(audioFile);
assertEquals("yo-mama", audioFileDao.getAudioFile("title").getArtist());
//It won´t delete
audioFileDao.deleteAudioFile(audioFile);
assertEquals(0, audioFileDao.getAll().size());
}
@After
public void tearDown(){
db.clearAllTables();
db.close();
}
}
答案 0 :(得分:1)
该错误消息告诉您缺少查询索引。按照错误消息中给控制台的链接并创建它,然后您应该能够执行查询。