小编Die*_*o P的帖子

Google云端功能 - 警告避免嵌套承诺承诺/不嵌套

鉴于以下功能,我收到警告:

警告避免嵌套承诺promise/no-nesting(第6行)

我应该如何重新构建功能以修复警告?

function FindNearbyJobs(uid, lat, lng){
  return admin.database().ref(`users/${uid}/nearbyjobs`).remove().then(data => {
    return new Promise((resolve, reject) => {
      const geoQueryJobs = geoFireJobs.query({center: [lat, lng], radius: 3 });
      geoQueryJobs.on("key_entered", (key, location, distance) => {
        return Promise.all([admin.database().ref(`jobs/${key}/category`).once('value'), admin.database().ref(`users/${uid}/account/c`).once('value')]).then(r => {
          const cP = r[0];
          const cO = r[1];
          if (cO.val().includes(cP.val())){
            return admin.database().ref(`users/${uid}/nearbyjobs/${key}`).set({ d: distance });
          }else{
            return null;
          }
        });
      });
      geoQueryJobs.on("ready", () => {
        resolve();
      });
    });
  });
}
Run Code Online (Sandbox Code Playgroud)

firebase firebase-realtime-database google-cloud-functions

12
推荐指数
1
解决办法
3600
查看次数

firebase的云功能已完成状态:'超时'

函数执行没有错误.我正在获得这个地位

函数执行耗时60004毫秒,完成状态:'超时'

我不确定是什么问题.我功能中的一切对我来说都很好.我还注意到函数有时需要几秒钟来更新数据库,有时它会立即生效.执行时间从即刻到几秒不等,这是正常的吗?应该立即执行时间吗?

exports.countproposals = functions.database.ref("/proposals/{jobid}/{propid}").onWrite((event) => {
    const jobid = event.params.jobid;
    const userId = event.params.propid;
    const userRef = admin.database().ref(`users/${userId}/proposals/sent`);
    if (event.data.exists() && !event.data.previous.exists()) {
        userRef.child(jobid).set({
            timestamp: admin.database.ServerValue.TIMESTAMP
        });
    } else if (!event.data.exists() && event.data.previous.exists()) {
        userRef.child(jobid).remove();
    }
    const collectionRef = admin.database().ref(`/jobs/${jobid}`);
    const countRef = collectionRef.child("proposals");
    return countRef.transaction(current => {
        if (event.data.exists() && !event.data.previous.exists()) {
            return (current || 0) + 1;
        } else if (!event.data.exists() && event.data.previous.exists()) {
            return (current || 0) - 1;
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

firebase firebase-realtime-database google-cloud-functions

10
推荐指数
1
解决办法
2533
查看次数