如何使用 on() firebase 数据库方法将 return 值传递给调用函数?

how to use on() firebase database method to return value to the calling function?

我正在编写一个 firebase 数据库帮助文件,其功能必须 return 从数据库到调用函数的数据。如果数据库中有任何更改,函数还应该 return 更新数据。所以使用on()方法来获取数据。

on() 方法是异步的,不等待回调从数据库中获取数据。 React hooks 不能在这里使用,因为 hooks 的规则被违反了,因为它不能在被调用的函数中使用。

编写具有读取和侦听数据库更改功能的帮助文件的最佳方法是什么?

helper.ts

// called function
export const getAssignmentList = function (uid:string) {
  var userRef = db.ref("UserAssignments/" + uid);
  userRef.on('value', snapshot => {
    var assignmentList = snapshot.val();
    return assignmentList;
  });
};

HomeScreen.ts

// calling function
var assignmentList = subscriptions.getAssignment(newId);
console.log('in homescreen calling function: ', assignmentList); // a list of user assignments from database should be displayed

航站楼:

主屏调用函数:undefined

您可以编写一个自定义挂钩,负责从帮助程序文件调用帮助程序函数。更多信息 here.