如何基于数据库(firebase)查询禁用页面?

时间:2019-05-18 04:04:23

标签: firebase react-native firebase-realtime-database

我是新的反应和火力发源者,目前正在开发和应用作为我的最后一年的项目

问题:

我的应用程序中有两个页面 PAGE 1和PAGE2 , 我想禁用PAGE 1直到输入PAGE 2数据(安装应用程序时应仅检查初始记录)

代码:

第1页中的代码

componentDidMount() {
firebase.database().ref(`/users/${awcid}/Timeline/Page2/`)
     .orderByChild('Page2date')
     .limitToLast(1)
     .once('value', checkifexists => {
       const datafff = firebaseLooper(checkifexists);
       console.log("checkifexists", datafff.length);
        const temp=datafff.length;
       if ((temp >= 1)) {
         this.setState({
           checkifexists: temp
         });
         console.log( "--------checkifexists--------","IF CONDITION",this.state.checkifexists, "----------------");
       } else {
         this.setState({
           checkifexists: 0
         });
         console.log("ELSE CONDITION");
       }
     });
}

内部渲染

   {!(parseInt(this.state.checkifexists) >= parseInt(1)) ? 
 <View style={styles.notexists} >
<Text style={{ color: '#FFFFFF', textAlign: 'center', alignItems: 'center', }}>Please enter stock page initially to access this page{'\n'}</Text>
</View> :
         :<View><Text>Display the form</Text></View>}

此代码可以正常工作,但每次加载page1时都会进行检查 (而不是最初进行检查)

1 个答案:

答案 0 :(得分:0)

安装后,您必须保留一个标志以标识该应用程序是否首次运行。您可以使用react-native-async-storage将字段存储为'isNotFrsttime',并在首次运行后将其设置为true。另外,请确保包括该布尔检查以仅在首次运行应用程序时阻止您的视图。

否则,如果您正在使用redux,则可以保持redux状态并在应用启动时补水。如果您已在项目中实现redux,则可以将标志存储在redux中。