Как отправить уведомление о реакции нативной экспо пу sh на указанный c номер или Пользователя? - PullRequest
0 голосов
/ 19 апреля 2020
  1. ниже - мой код для уведомления pu sh. Я хочу получить имя и фамилию гонщика и отправить его в виде уведомления pu sh на номер ближайшего родственника. кнопка не работает или не отправляет никаких уведомлений.

    импорт React из 'реакции'; import {StyleSheet, Text, View, Button, AsyncStorage, createDrawerNavigator, Image, TouchableHighlight} из'act-native '; import {Content, Container, Header, Left, Icon, Footer, Body, Card, CardItem} из 'native-base'; импорт firebase из 'firebase';

    import {Permissions, Notifications} из 'expo-permissions'; импортировать RiderPickUp из './RiderPickUp'; импортировать RiderPickDrop из.

    };

    asyn c componentDidMount () {

    AsyncStorage.getItem('riderId')
    .then(result => 
    
    
      firebase.database().ref('/Riders/' +result+'/Details').once('value').then(function(snapshot) {
        firstname = snapshot.child('firstname').val();
        lastname = snapshot.child('lastname').val();
        nextOfKinNumber = snapshot.child('nextOfKinNumber')
    
    
    
    
        }).then(()=>{
          //console.log("fine"+result);
    
    
    
        },(error)=>{
          console.error("error"+error);
          console.log("the user id:"+userId);
        })
    
    )
    
    
    
    
    
    AsyncStorage.getItem('driverId')
    .then(result => 
    
    
      firebase.database().ref('/Drivers/' +result+'/Details').once('value').then(function(snapshot) {
        firstname = snapshot.child('firstname').val();
        lastname = snapshot.child('lastname').val();
       // phone = snapshot.child('phone').val();
    
    
    
    
        }).then(()=>{
          //console.log("fine"+result);
    
    
    
        },(error)=>{
          console.error("error"+error);
          console.log("the user id:"+userId);
        })
    
    )
    
    
    
    
    this.currentUser = await firebase.auth().currentUser;
    
    await this.registerForPushNotificationsAsync();
    

    }

    sendPushNotification = () => {

    let response = fetch('https://exp.host/--/api/v2/push/send', {
    
      method: 'POST',
    
      headers: {
    
        Accept: 'application/json',
    
        'Content-Type': 'application/json'
    
      },
    
      body: JSON.stringify({
    
        to: nextOfKinNumber,
    
        sound: 'default',
    
        title: 'Go App',
    
        body: `Name ${this.firstname + this.lastname},
         booked a ride with driver details Name ${this.driverfirstname + this.driverlastname },
          from pickuplocation ${RiderPickUp} to Destination ${RiderPickDrop}`
    
         ,
    
        priority : 'high',
    
    
    
      })
    
    });
    

    };

    stati c navigationOptions = {

    drawerIcon: ({ tintColor }) => (
      <Image
        source={require('../Images/notification.png')}
        style={{width:25,height:25}}
      />
    ),
    

    };

    render () {return (

       <Header style={{backgroundColor:'#42A5F5',height:75}}>
           <Left>
           <TouchableHighlight
           style={{width:50,height:50,borderRadius:50,alignItems:'center',justifyContent:'center',marginTop:20}}
           onPress={() => this.props.navigation.navigate('Home')}
            >
           <Icon
            name="arrow-back"
            style={{color:'#ffffff',}}
            / >
           </TouchableHighlight>
           </Left>
          <Body>
            <Text style={{color:'#ffffff',fontSize:20,fontWeight:'bold',marginTop:20}}>Notifications</Text>
          </Body>
    
       </Header>
    
       <Content >
    
    
        <View style={styles.loginButtonSection}>
           <Button
    
    
          title="Notify Next Of Kin"
    
          onPress={() => this.sendPushNotification()}
    
        />
    

       </Content>
    
      </Container>
    );
    

    }

    }

    const styles = StyleSheet.create ({containerView: {flex: 1, backgroundColor: '# ffffff'}, map: {height: 600 , marginTop: 0},

    loginButtonSection: {высота: 50, ширина: 350, paddingLeft: 80, marginTop: 415, justifyContent: 'center', alignItems: 'center'}

    } ); [! [Это мои узлы базы данных firebase] [1]] [1]

    [1]: https://i.stack.imgur.com/gHksd.png

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...