我通过执行以下操作成功更新Firebase实时数据库中的内部节点:
...
constructor() {
private db: AngularFireDatabase
}
...
function updateName(node, innerNode, newName) {
return new Promise((resolve, reject) => {
this.db.database
.ref('nodes/' + node.key + '/innerNodes/' + innerNode.key + '/name')
.set(newName)
.then(() => resolve())
.catch((e) => reject(e));
})
}
但之后我的页面数据没有自动更新。它需要页面重新加载才能看到更改。
定期更新(我只是做db.list(PATH).update(uid, {key:value})
)更改会立即反映在我的网页上。事实上,我确实在同一个应用程序上有一个工作示例。
我读到这是一个NgZone问题,但我无法使其发挥作用。
有人能帮我弄清楚我的代码有什么问题吗?
更新:
这是我应该看到结果的地方:
<h1 [(ngModel)]="innerNode.name"></h1>
<button (click)="updateName(node, innerNode, 'New name')" type="button">Change to new name</button>