Firebase Admin SDK执行database update操作返回undefined问题咨询
问题原因
Firebase Admin SDK 实时数据库的 update() 方法属于写操作接口,其返回的 Promise 在操作成功执行后本身就不会返回 DataSnapshot 快照对象,resolve 的默认值就是 undefined,这是 API 的固有设计,和你使用的 ^9.12.0 版本不存在兼容性冲突。
除 update() 外,set()、remove() 等其余写操作接口的 Promise 回调都不会返回快照,只有 once('value') 这类主动读操作的返回值才会携带快照对象。
如果你需要获取更新完成后的最新节点数据,可以在更新操作成功后主动调用读接口拉取,参考代码如下:
const clientRef = admin.database().ref(`clients/${id}`); clientRef.update({name: 'name'}) .then(() => { // 主动读取更新后的数据 return clientRef.once('value'); }) .then(snapshot => { console.log(snapshot.val()); // 输出更新后的节点数据 })
内容的提问来源于stack exchange,提问作者artooras
相关产品推荐
相关产品推荐

