Экспо push-уведомления перестали работать в производстве - PullRequest
0 голосов
/ 07 ноября 2018

Я использую Expo для разработки Android и iOS одновременно. Уведомления работали нормально в течение нескольких недель, а затем из-за того, что перестали работать в производстве, хотя я не обновлял приложение в течение этого времени.

На стороне сервера, все по-прежнему в порядке, и уведомления отправляются. В dev уведомления по-прежнему принимаются и обрабатываются должным образом, но в производстве это сверчки.

Кто-нибудь еще испытывал это / что может быть причиной этого?

Вот мой код:

class Dashboard extends Component {

  constructor(props) {
    super(props);
    this.state = {
      notificationsSet: false,
    }

  }

  componentDidMount() {
    this.registerForPushNotificationsAsync(this.props.currentUser.currentUser.id, this.props.currentUser.authToken)

   savePushToken = (userId, pushToken, token) => {
    //API call to save push token to database
    apiHelper
      .savePushToken(userId, pushToken, token)
      .then(res => {
        return
      })
      .catch(err => console.log("err saving", err));
  };

  handleNotification = notification => {
    this.props.setNotification({ notification })
  }

  registerForPushNotificationsAsync = async (userId, token) =>{
    //requesting if user would like to turn on notifications
    const { status: existingStatus } = await Permissions.getAsync(
      Permissions.NOTIFICATIONS
    );
    //this checks if notifications is turned on for the app --- "granted"
    let finalStatus = existingStatus;
    if (existingStatus !== "granted") {
      const { status } = await Permissions.askAsync(Permissions.NOTIFICATIONS);

      finalStatus = status;
    }
    if (finalStatus !== "granted") {
      return;
    }    //if "granted" then get push notifications and calls this.savepushtoken to save into the API

    let pushToken = await Notifications.getExpoPushTokenAsync();

    this.subscription = Notifications.addListener(this.handleNotification);
    this.savePushToken(userId, pushToken, token);
  };

     render() {
      return(...)
     }
  }
...