如何知道以前是否使用react native firebase调用过firebase.messaging().requestPermission

如何知道以前是否使用react native firebase调用过firebase.messaging().requestPermission,firebase,react-native,push-notification,react-native-firebase,Firebase,React Native,Push Notification,React Native Firebase,我有一个React-Native应用程序,它将Firebase云消息与React-Native Firebase包一起使用 我在React本机应用程序的第一个屏幕上执行此操作,因此5秒后,用户将被发送到一个新屏幕,该屏幕解释推送通知为何有用,并为用户提供一个按钮以启动对话框,用户可以在其中接受或拒绝权限 setTimeout(() => { firebase.messaging().hasPermission() .then(ena

我有一个React-Native应用程序,它将Firebase云消息与React-Native Firebase包一起使用

我在React本机应用程序的第一个屏幕上执行此操作,因此5秒后,用户将被发送到一个新屏幕,该屏幕解释推送通知为何有用,并为用户提供一个按钮以启动对话框,用户可以在其中接受或拒绝权限

setTimeout(() => {

            firebase.messaging().hasPermission()
                .then(enabled => {
                    if (enabled) {
                        // user has permissions
                    } else {
                        // user doesn't have permission
                        this.props.navigation.navigate('EnableNotificationPermissionScreen')
                    }
                });

        },
            5000);
在EnableNotificationPermissionScreen屏幕中,有如下按钮:

 <Button onPress={this.onSetNotificationPref.bind(this)} title="Set Notification Preference" color="#4ab2fc"/>
onSetNotificationPref() {

        firebase.messaging().requestPermission()
            .then(() => {
                // User has authorized
                firebase.analytics().logEvent('messaging_permission_accepted');

                this.props.navigation.navigate('App');
            })
            .catch(error => {
                // User has rejected permissions
                firebase.analytics().logEvent('messaging_permission_rejected');

                this.props.navigation.navigate('App');
            });
    }
如果用户接受,一切都会如我所希望的那样工作,用户将拥有该权限,并且不会再次导航到该屏幕

但是,如果用户拒绝该权限,我不想再次将其导航到该屏幕。按原样,它们将再次导航到那里,因为hasPermission将为false。此外,单击该按钮在该屏幕上执行requestPermission将不起任何作用,因为操作系统将阻止requestPermission()

在我看到的示例中,只要权限未启用(没有像这样的自定义屏幕),就会调用requestPermission;因此,要么弹出对话框,要么不弹出。然而,在我试图实现的流程中,我只想在用户没有权限的情况下导航到此自定义屏幕,因为他们没有被请求。如果他们被询问并拒绝,则不应将他们导航到该屏幕

使用firebase.messaging()中的函数有没有办法实现这一点,或者我是否必须使用诸如异步存储之类的持久存储来自行跟踪对话框是否已显示