Javascript Firebase云函数不会在子集合中创建文档

Javascript Firebase云函数不会在子集合中创建文档,javascript,firebase,google-cloud-functions,Javascript,Firebase,Google Cloud Functions,当我在我的Flatter应用程序中使用Firebase Cloud函数在集合中创建文档时,它可以工作: const functions = require('firebase-functions'); const admin = require('firebase-admin'); exports.onCreatePost = functions.firestore .document("/posts/{postId}") .onCreate(async (s

当我在我的Flatter应用程序中使用Firebase Cloud函数在集合中创建文档时,它可以工作:

const functions = require('firebase-functions');
const admin = require('firebase-admin');
exports.onCreatePost = functions.firestore
    .document("/posts/{postId}")
    .onCreate(async (snap, context) => {
        const doc = snap.data()
        const creatorId = doc.creatorId
        admin.firestore().collection('feeds').doc(creatorId).set({ 
                  Id: creatorId, 
                  isRead: false, 
                  timestamp: admin.firestore.FieldValue.serverTimestamp(), 
            })
        });
但是,当我尝试在该文档的子集合中添加相同的文档时,它不起作用:

const functions = require('firebase-functions');
const admin = require('firebase-admin'); 
exports.onCreatePost = functions.firestore
    .document("/posts/{postId}")
    .onCreate(async (snap, context) => {
        const doc = snap.data()
        const creatorId = doc.creatorId
        admin.firestore().collection('feeds').doc(creatorId).collection('feedItems').doc(context.params.postId).set({ 
                  Id: creatorId, 
                  isRead: false, 
                  timestamp: admin.firestore.FieldValue.serverTimestamp(), 
            })
        });

我做错了什么?我确实在日志中看到云函数已成功完成,但文档未在我的cloud Firestore中创建。

我希望这两个函数都不会可靠工作,因为您不会返回在异步工作完成后解析的承诺。如果您不返回承诺,那么云函数可能会在完成之前终止您的函数

至少,您应该返回
set()
返回的承诺

您还应该检查云函数日志中的错误。错误不会显示在应用程序中,因为代码完全在应用程序之外运行


我也建议这样做。

我也试过了。但也不起作用。我知道,如果不返回,它是不可靠的,但它只适用于将文档添加到集合中,而不适用于子集合。我还添加了一个.then(()=>{return console.log('Write successed!');});对于带有“return”的版本,云函数控制台显示消息“Write successed!”。。但我在CloudFireStore中没有看到该文档。我在云函数日志中没有看到任何错误。我知道发生了什么。。文档正在创建中,但由于mu flifter代码中的另一个逻辑,它在创建之后立即被删除。谢谢你的帮助!
return admin.firestore()
  .collection('feeds')
  .doc(creatorId)
  .collection('feedItems')
  .doc(context.params.postId)
  .set(...)