Cloud Firestore函数Javascript:使用whereEqualTo查询触发函数

时间:2018-11-03 09:24:24

标签: javascript firebase google-cloud-firestore google-cloud-functions

在Android中,我们可以通过设置这样的查询来在包含简单查询/复合查询的集合内进行监听。

mQuery = mDatabase.collection("Users")
            .document(FirebaseAuth.getInstance().getCurrentUser().getUid())
            .collection("Request").whereEqualTo("status","received")
            .whereEqualTo("type","friend_request")
            .orderBy("time", Query.Direction.DESCENDING)
            .limit(5);

然后基于这样的查询设置侦听器。

 mQuery.addSnapshotListener(new EventListener<QuerySnapshot>() {
        @Override
        public void onEvent(@javax.annotation.Nullable QuerySnapshot queryDocumentSnapshots, @javax.annotation.Nullable FirebaseFirestoreException e) {
            //If something went wrong
            if (e != null)
                Log.w(TAG, "ERROR : ", e);...//foreach loop

我可以使用Cloud Function做类似的事情吗?我目前正在使用这一行代码,并且可以正常工作。

functions.firestore.document("Users/{user_id}/Notifications/{notification_id}").onCreate((added, context) => {

但是对于某些更改,现在我只想触发一个函数,即文档字段等于我认为的foreach循环?

另一件事是,如果可能进行查询,我现在将如何获取“ Notification”集合的文档ID,现在我使用通配符,然后像这样检索它。

const notification_id = context.params.notification_id;

1 个答案:

答案 0 :(得分:0)

使用Firestore的Cloud Functions触发器,您只能使用通配符指定导致该功能触发的集合和文档。没有可用的查询过滤器。如果要进一步限制哪些更改的文档需要采取某些措施,则必须检查代码中文档的内容。