在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;
答案 0 :(得分:0)
使用Firestore的Cloud Functions触发器,您只能使用通配符指定导致该功能触发的集合和文档。没有可用的查询过滤器。如果要进一步限制哪些更改的文档需要采取某些措施,则必须检查代码中文档的内容。