【问题标题】:How to delete a ListView document from Firestore in Android when I click it?单击时如何从 Android 的 Firestore 中删除 ListView 文档?
【发布时间】:2020-05-10 08:31:11
【问题描述】:

我想从 firestore 中删除一个文档,并且我想在单击 listView 项时更改活动。我可以更改活动,当我单击它时我可以删除电影,但我再次打开应用程序它仍然在那里,因为我无法从 Firestore 中删除它我尝试但我做不到。我该怎么做?

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            filmArray.remove(position);
            arrayAdapter.notifyDataSetChanged();
            Intent intent=new Intent(IzlemekIstediklerim.this,FilmEkle.class);
            startActivity(intent);
        }
    });

【问题讨论】:

  • filmArray.remove(position) 将其从列表中删除,但不从 db 中删除
  • 在执行删除操作时,您还想从数据库中删除电影吗?请回复@AlexMamo
  • @AlexMamo 是的,我也想从数据库中删除它
  • 在这种情况下,请编辑您的问题并添加与删除操作相关的代码,并说明它没有按您预期的方式工作。

标签: java android firebase google-cloud-firestore


【解决方案1】:

documentation 中所述,您必须访问集合然后将其删除

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            filmArray.remove(position);
            arrayAdapter.notifyDataSetChanged();

            deleteFromDB();

            Intent intent=new Intent(IzlemekIstediklerim.this,FilmEkle.class);
            startActivity(intent);
        }
    });

删除函数

private void deleteFromDB(){
db.collection("movies").document("Inception")
        .delete()
        .addOnSuccessListener(new OnSuccessListener<Void>() {
            @Override
            public void onSuccess(Void aVoid) {
                Log.d(TAG, "DocumentSnapshot successfully deleted!");
            }
        })
        .addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                Log.w(TAG, "Error deleting document", e);
            }
        });
}

【讨论】:

    【解决方案2】:

    我不确定,但这可能会有所帮助:

          private final FireBaseFireStore db;
    
           public void deleteDocument() {
        // [START delete_document]
        db.collection("movies").document("inception")
                .delete()
                .addOnSuccessListener(new OnSuccessListener<Void>() {
                    @Override
                    public void onSuccess(Void aVoid) {
                        Log.d(TAG, "DocumentSnapshot successfully deleted!");
                    }
                })
                .addOnFailureListener(new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception e) {
                        Log.w(TAG, "Error deleting document", e);
                    }
                });
        // [END delete_document]
    }
    

    看看at this github project

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-01
      • 2018-05-08
      • 2019-02-15
      • 2020-12-11
      • 2021-05-28
      • 1970-01-01
      • 2021-10-16
      • 1970-01-01
      相关资源
      最近更新 更多