我是flutter和firebase的新手,我正在使用它们创建一个Web应用程序。我想创建一个firebase云函数,在添加/创建另一个文档时更新另一个文档。我有两个文件;用户和组。在users文档中,有一个名为groups的数组,该数组具有用户所在的组的uid;在groups文档中,有一个数组,称为数组,其中有该组中用户的uid:
问题:创建新组时,如何将组uid添加到组成员数组中提到的特定用户的组数组中?
我对脚本类型一无所知,所以我不确定自己在做什么,但是这是我的开始:
import * as functions from 'firebase-functions';
const admin=require('firebase-admin');
admin.initializeApp(functions.config().firebase);
export const updateUserGroups= functions.database.ref('/groups/{groupUID}/members').onCreate(()=>{});
我不确定在创建后groupUID将如何到达函数。我猜想我必须以某种方式通过它(我正在使用flutter..so,所以我不确定那将如何工作。)?如果有人可以提供帮助,我将不胜感激。谢谢!
所以我找到了一个解决方案:
import * as functions from 'firebase-functions';
"use strict"
const admin = require('firebase-admin');
admin.initializeApp();
const db = admin.firestore();
export const updateUserGroups = functions.firestore.document('groups/{groupUID}').onCreate((snapshot, context) => {
const groupUID=snapshot.id;
const groupData = snapshot.data();
for (let userUID of groupData['members']) {
db.collection('users').doc(userUID).update({groups: admin.firestore.FieldValue.arrayRemove(null)})
db.collection('users').doc(userUID).update({groups: admin.firestore.FieldValue.arrayUnion(groupUID)})
}
});
只是不得不做一点挖掘。道格的评论帮助我弄清楚了要看的内容,所以谢谢道格!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句