我可以从Firestore上的集合中获取文档吗

时间:2019-03-28 13:57:04

标签: android google-cloud-firestore

我已经设置了消防站并连接到我的应用程序。有这些类别,当我单击一个类别以从该类别中获取所有子类别时,我想要。有人可以一步一步向我解释如何做吗?

 public class BeautyIzbornik extends Activity {


    ImageButton imageButton;

    private FirebaseFirestore db = FirebaseFirestore.getInstance();
    private CollectionReference firemRef = db.collection("beauty");


    private FirmeAdapter adapter;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.firmeinfo);

        setUpRecyclerView();



    }

    private void setUpRecyclerView(){
        Query query= firemRef.orderBy("logo",Query.Direction.DESCENDING);

        FirestoreRecyclerOptions<Firme> options = new FirestoreRecyclerOptions.Builder<Firme>()
                .setQuery(query,Firme.class)
                .build();
        adapter= new FirmeAdapter(options);

        RecyclerView recyclerView = findViewById(R.id.recycler_view2);
        recyclerView.setHasFixedSize(true);
        recyclerView.setLayoutManager(new LinearLayoutManager(this));
        recyclerView.setAdapter(adapter);
    }



    @Override
    protected void onStart() {
        super.onStart();
        adapter.startListening();
    }

    @Override
    protected void onStop() {
        super.onStop();
        adapter.stopListening();
    }



}

我的消防店看起来像这样

这是我的主要类别和子类别:

这是一个子类别的子集合:

现在在我的主要活动中,我打开主要类别,我想按一下子类别(主要活动中所有内容都不用了),我想打开新活动,并用该子类别中的项目填充...我有更多的子类别和项目,但我希望您理解我想要显示的内容。 所以我想让我的主要活动充满分类法,让第二项活动充满子类别,并且让第三项活动显示在第二项活动中被单击的某些项目的数据,希望您能理解我的英语是不好的:D

2 个答案:

答案 0 :(得分:0)

如果提供数据库模式,它将更加有用。但是在所有模式上,想法都是相同的。

 Query query= firemRef.document("myDocumentHERE");
  ...

您可以通过以下操作获取“ myDocumenthere”的集合

Query query= firemRef.document("myDocumentHERE").collection("myCollection");

我建议您阅读官方文档,那里有代码示例,其解释要好得多。 Source

答案 1 :(得分:0)

  

我可以从Firestore上的临时仓库中获取文档

是的,你可以的!您要在回收站中显示数据吗?

尝试一下。 Watch Now

enter image description here

要在文档表中检索beauty,请使用以下方法:

firebaseFirestore...
String postId = doc.getDocument().getId(); //retrieving 'beauty` in document table
MyContent myContent = doc.getDocument().toObject(MyContent.class.withId(postId));

在Adapter类中,您将使用以下方法再次检索它:

final String postId = contentList.get(position).PostId;
firebaseFirestore.collection("kategorije").document(postId).collection("beauty").addSnapshotListener(new EventListener<QuerySnapshot>() ...

请查看他的视频以获取详细信息。