Tag: google cloud firestore

等到检索到Firestore数据以启动活动

我已经制作了一个POJO对象列表,它从我的Cloud Firestore数据库中获取值。 此List本身就是一个类,每次创建新List时都会检查属性。 问题是列表没有填写在创建活动上,而是在之后的时间。 我已经尝试添加循环,任务,等待,但没有得到所需的结果。 以下是我如何令人满意地检索我的数据: private void retrieveData(){ reference = firestore.collection(“attractions”); reference.addSnapshotListener(new EventListener() { @Override public void onEvent(@Nullable QuerySnapshot queryDocumentSnapshots, @Nullable FirebaseFirestoreException e) { attractionList.clear(); for (DocumentSnapshot snapshot : queryDocumentSnapshots) { Attraction attraction = snapshot.toObject(Attraction.class); addAttractions(attraction); } } }); } 每次创建新对象时都会检索数据: public AttractionList() { firestore.setFirestoreSettings(settings); reference = firestore.collection(“attractions”); attractionList = new ArrayList(); retrieveData(); } […]

减少Firestore Android中的读取次数

我想减少读取次数,以便从QuestionCollection ( QuestionCollection数组)中获取问题的详细信息。 我的应用程序就像stackoverflow的一部分 。 我想表明一个问题有多少喜欢,观点和评论 。 所以为了处理这个我创建了多个集合 QuestionCollection ID 标题 创建日期 CommentCollection ID 评论 创建日期 QuestionLikes QuestionID 用户名 QuestionViews QuestionID 用户名 问题标签 QuestionID 标签识别 我认为CommentCollection (评论)只属于一个问题。 所以我想在QuestionCollection中加入像数组或集合(但它需要另一个读取命中)。 哪一个更好 ? 我想在QuestionCollection中添加两个变量( totalViews,totalLikes )。 但每次我必须检查此用户是否喜欢此问题或该用户查看。 给我一个建议或替代方案, 这样我可以获得最少的点击来获取问题详细信息 。 编辑 对于显示视图计数,我迭代并计算QuestionViews集合中的questionID == myQuestionID 对于显示喜欢计数我迭代并计算QuestionLikes Collection其中questionID == myQuestionID 为什么我不将它添加到QuestionCollection? 因为我想显示最多的被观看者和最喜欢像stackoverflow这样的问题。 如果我将它添加到QuestionCollection我怎么能知道最喜欢和最常见的问题。

Firestore:查询android中数组中的所有元素

我有一个类似的数据结构 /Split // Collection {authid} // Document /SentIvitation //Collection {auto-id} //Documnet amount //array 0:10 1:10 2:10 Phonenumbers//array 0:987654321 1:123456789 2:234567890 我需要查询电话号码中的所有元素,我必须检查这些电话号码是否已经存在于另一个集合中。 我的数据结构的下一个路径是 /deyaUsers //Collection {authid}. //Documnet Name: “abc” Email: “abc@gmail.com” Phonenumber:987654321 在没有任何索引的情况下可以在firestore中使用吗?

Firestore – 在本地合并两个查询

由于Firestore中没有逻辑OR运算符,因此我尝试在本地合并2个单独的查询。 现在我想知道如何保持结果的正确顺序。 当我独立运行2个查询时,我无法特定地查询结果(至少不是我使用orderBy方法从Firestore获取结果的顺序)。 我的想法是将第二个查询放在第一个查询的onSuccessListener中。 这是一个表现明智的坏主意吗? public void loadNotes(View v) { collectionRef.whereLessThan(“priority”, 2) .orderBy(“priority”) .get() .addOnSuccessListener(new OnSuccessListener() { @Override public void onSuccess(QuerySnapshot queryDocumentSnapshots) { for (QueryDocumentSnapshot documentSnapshot : queryDocumentSnapshots) { Note note = documentSnapshot.toObject(Note.class); //adding the results to a List } collectionRef.whereGreaterThan(“priority”, 2) .orderBy(“priority”) .get() .addOnSuccessListener(new OnSuccessListener() { @Override public void onSuccess(QuerySnapshot queryDocumentSnapshots) { for (QueryDocumentSnapshot […]

如何使用Android对Firestore进行分页?

我阅读了Firestore文档以及关于Firestore分页的互联网(stackoverflow)上的所有文章,但没有运气。 我试图在docs中实现确切的代码,但没有任何反应。 我有一个基本的数据库项目(超过1250或更多),我想逐步得到它们。 通过滚动来加载15个项目(到数据库中的最后一项)。 如果使用docs代码: // Construct query for first 25 cities, ordered by population Query first = db.collection(“cities”) .orderBy(“population”) .limit(25); first.get() .addOnSuccessListener(new OnSuccessListener() { @Override public void onSuccess(QuerySnapshot documentSnapshots) { // … // Get the last visible document DocumentSnapshot lastVisible = documentSnapshots.getDocuments() .get(documentSnapshots.size() -1); // Construct a new query starting at this document, // […]

如何计算Firestore中集合下的文档数量?

我正在尝试获取Cloud Firestore上存在的CollectionReference计数,我试图通过以下方式获取它: FirebaseFirestore db = FirebaseFirestore.getInstance(); final CollectionReference postsCollection = db.collection(“Posts”); final TaskCompletionSource source = new TaskCompletionSource(); new Thread(new Runnable() { @Override public void run() { int fromWhereToStart = postsCollection.get().getResult().size(); source.setResult(fromWhereToStart); } }).start(); Task task = source.getTask(); task.addOnCompleteListener(new OnCompleteListener() { @Override public void onComplete(@NonNull Task task) { Log.e(“Z_fromWhereToStart”, “= ” + task.getResult()); } }); 但不幸的是,我得到了: […]

如何使用Android在RecyclerView中显示Firestore中的数据?

使用Android在RecyclerView显示现有Firestore数据库中数据的最佳方法是什么? 这不作为答案中的完整解释,因此我添加了此Q&A样式,以便可以在评论中链接。