检查 firebase 消息传递在浏览器中是否可用

Check if firebase messaging is available in browser

我打算在我的 Angular 应用中使用 @angular/fire 包装器来使用 Firebase Messaging。

在最初的 Firebase 参考资料中,他们描述了一个 firebase.messaging.isSupported() method,在计划使我的应用程序可用于各种浏览器时调用它似乎是一个明智的事情。

现在 @angular/fire 包装器没有公开那个方法,而且,在查看它的源代码时,它似乎也没有在内部使用它。

所以我的问题是:仅注册 @angular/fire 包装器的 requestToken observable 是否安全,或者我是否需要首先确保当前浏览器支持 Firebase Messaging ?

如果您使用的是 angular/fire,则 firebase 是一个依赖项。我们正在做:

import * as firebase from 'firebase/app';
import 'firebase/messaging';

@Injectable()
export class NotificationService {

  constructor(
     ...
  ) {

    this.messaging = firebase.messaging();

    if (firebase.messaging.isSupported()) {
        ...         
    } else {
        // let the user know their browser doesn't support notifications, probably Safari, eww
    }

  }