【问题标题】:Check for identical value in firebase collection检查 firebase 集合中的相同值
【发布时间】:2021-12-31 17:16:45
【问题描述】:

您将如何实现一个匹配系统来检查来自不同文档的一个集合中的两个值何时相同?每次检测到两个值匹配时,此代码都必须调用一个函数来运行。

【问题讨论】:

  • 到目前为止你有什么尝试?
  • 这不只是在集合中查询值的问题,如果返回的快照计数> 1,则存在重复项?还有什么吗?
  • 它必须找到重复的值,然后根据该文档执行一个函数
  • 对。那么编写该代码有什么问题呢?或者您是否尝试过并且代码有问题?请花点时间查看How do I ask a good question?How to create a Minimal, Complete, and Verifiable example

标签: database firebase google-cloud-firestore


【解决方案1】:

documentation 中所述:

Cloud Firestore 提供了强大的查询功能,用于指定要从集合或集合组中检索哪些文档。这些查询 > 也可以与 get() 或 addSnapshotListener() 一起使用,如获取数据和获取实时更新中所述。

我建议您为每个条目使用唯一标识符,然后您可以添加一个侦听器来匹配集合中的每个数据。 语法:

 query.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override public void onDataChange(DataSnapshot dataSnapshot) { 
    if (dataSnapshot.exists()) { 
    // dataSnapshot is the "issue" node with all children with id 0
     for (DataSnapshot issue : dataSnapshot.getChildren()) {
     // do something with the individual "issues"
} } }

你可以参考Stackoverflow answer,弗兰克已经用下面的函数代码做了简单的解释。

public interface AlreadyBookedCallback {
  void onCallback(boolean isAlreadyBooked);
}

private void alreadyBooked(final String boname, final String bodept, final String botime, AlreadyBookedCallback callback) {
    CollectionReference cref=db.collection("bookingdetails");
    Query q1=cref.whereEqualTo("time",botime).whereEqualTo("dept",bodept);
    q1.get().addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
        @Override
        public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
            for (DocumentSnapshot ds : queryDocumentSnapshots) {
                String rname, rdept, rtime;
                rname = ds.getString("name");
                rdept = ds.getString("dept");
                rtime = ds.getString("time");
                if (rdept.equals(botime)) {
                    if (rtime.equals(botime)) {
                        isExisting = true;
                    }
                }
            }
            callback.onCallback(isExisting)
        }
    });
}

有关如何检查文档中的重复值的更多信息,您还可以参考thread

【讨论】:

  • @chackerian 发布了答案,有帮助吗?
猜你喜欢
  • 2021-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-24
  • 2018-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多