Невозможно получить ИД пользователя Onesignal, когда пользователь впервые устанавливает приложение во флаттере - PullRequest
0 голосов
/ 23 апреля 2020

Я хочу сохранить сингл-идентификатор пользователя в базе данных, когда пользователь впервые устанавливает мое приложение. Я написал следующий код, который не позволяет мне сделать это. Однако, когда пользователь вышел из приложения и повторно вошел в систему, я смог получить идентификатор пользователя и сохранить его в базе данных. Пожалуйста, помогите мне.

 Future<void> initPlatformState(username) async {

              if (!mounted) return;

              OneSignal.shared.setLogLevel(OSLogLevel.verbose, OSLogLevel.none);

              OneSignal.shared.setRequiresUserPrivacyConsent(_requireConsent);

              var settings = {
                OSiOSSettings.autoPrompt: false,
                OSiOSSettings.promptBeforeOpeningPushUrl: true
              };



              OneSignal.shared
                  .setSubscriptionObserver((OSSubscriptionStateChanges changes) {

               print("SUBSCRIPTION STATE CHANGED: ${changes.jsonRepresentation()}");

              });

              OneSignal.shared.setPermissionObserver((OSPermissionStateChanges changes) {

               print("PERMISSION STATE CHANGED: ${changes.jsonRepresentation()}");
              });

              OneSignal.shared.setEmailSubscriptionObserver(
                  (OSEmailSubscriptionStateChanges changes) {
                print("EMAIL SUBSCRIPTION STATE CHANGED ${changes.jsonRepresentation()}");
              });

              await OneSignal.shared
                  .init("MY Onesignal APP ID", iOSSettings: settings);

              OneSignal.shared
                  .setInFocusDisplayType(OSNotificationDisplayType.notification);

           var status = await OneSignal.shared.getPermissionSubscriptionState();

                onesignalUserId = status.subscriptionStatus.userId;   

          print("player ID: "+ onesignalUserId.toString()); // printing only in re-login
          _saveOneSignalId(onesignalUserId,username); // my save funtion into the DB

                                         }
...