gpt4 book ai didi

angular - 使用 AngularFire2 处理 Firebase 权限错误

转载 作者:搜寻专家 更新时间:2023-10-30 21:30:00 25 4
gpt4 key购买 nike

我在 Firebase 中有一个集合,可能偶尔会被没有正确权限的用户访问。现在发生这种情况时,我在控制台中收到一堆警告和未捕获的异常,似乎无法正确处理它们。我通常订阅这样的可观察对象:

this.af.database.object('/someLocation/abc').subscribe(obj => {
// logic
});

在不放松安全规则的情况下,处理这些未处理异常的最佳方法是什么?

最佳答案

您可以将错误处理程序传递给您的 subscribe 调用:

this.af.database.object('/someLocation/abc').subscribe(
obj => {
// logic
},
error => {
// handle/report the error
}
);

这应该会从控制台中删除未处理的错误/拒绝的 promise ,但 Firebase 可能仍会在那里报告警告。

此外,您应该知道,当可观察对象出错时,所有订阅者都会自动取消订阅。因此,如果您遇到错误,就是这样;不会发出更多值。

subscribe 中指定错误处理程序的替代方法是使用 catch 运算符:

import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/of';
import 'rxjs/add/operator/catch';

let abc$ = this.af.database
.object('/someLocation/abc')
.catch(error => {
// handle the error
// and return an appropriate observable if you have one
// perhaps a default value or an empty observable, etc.
// or rethrow the error
// or return Observable.throw(new Error('Some error'))
return Observable.of("some-default-value");
});

关于angular - 使用 AngularFire2 处理 Firebase 权限错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41773595/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com