Flutter Firebase работает на моей основной настройке, но не на второй, хотя это одно и то же приложение.IOS

Программируем под IOS
Ответить
Anonymous
 Flutter Firebase работает на моей основной настройке, но не на второй, хотя это одно и то же приложение.

Сообщение Anonymous »

Я использую две разные системы для кодирования. Дома у меня iMac, а когда я путешествую или в командировке, у меня есть ноутбук с Windows. Когда я работаю дома, у меня нет проблем с запуском и разработкой приложения Flutter как на iOS, так и на Android.
Однако, когда я путешествую, я использую свой ноутбук с Windows, и у меня возникают странные ощущения. ошибки от Firebase, и моему приложению, похоже, не нравится Firebase. Я использую Firebase Remote Config и Firebase Cloud Messaging.
При запуске приложения Android на ноутбуке с Windows и попытке получить токен FCM я получаю следующую ошибку:

Код: Выделить всё

E/FirebaseInstanceId( 4181): Failed to get FIS auth token
E/FirebaseInstanceId( 4181): java.util.concurrent.ExecutionException: com.google.firebase.installations.FirebaseInstallationsException: Firebase Installations Service is unavailable. Please try again later.
E/FirebaseInstanceId( 4181):  at com.google.android.gms.tasks.Tasks.zza(com.google.android.gms:play-services-tasks@@18.0.2:5)
E/FirebaseInstanceId( 4181):  at com.google.android.gms.tasks.Tasks.await(com.google.android.gms:play-services-tasks@@18.0.2:8)
E/FirebaseInstanceId( 4181):  at com.google.firebase.iid.GmsRpc.setDefaultAttributesToBundle(com.google.firebase:firebase-iid@@21.1.0:11)
E/FirebaseInstanceId( 4181):  at com.google.firebase.iid.GmsRpc.startRpc(com.google.firebase:firebase-iid@@21.1.0:1)
E/FirebaseInstanceId( 4181):  at com.google.firebase.iid.GmsRpc.getToken(com.google.firebase:firebase-iid@@21.1.0:1)
E/FirebaseInstanceId( 4181):  at com.google.firebase.iid.FirebaseInstanceId.lambda$getInstanceId$2$FirebaseInstanceId(com.google.firebase:firebase-iid@@21.1.0:1)
E/FirebaseInstanceId( 4181):  at com.google.firebase.iid.FirebaseInstanceId$$Lambda$3.start(Unknown Source:10)
E/FirebaseInstanceId( 4181):  at com.google.firebase.iid.RequestDeduplicator.getOrStartGetTokenRequest(com.google.firebase:firebase-iid@@21.1.0:7)
E/FirebaseInstanceId( 4181):  at com.google.firebase.iid.FirebaseInstanceId.lambda$getInstanceId$3$FirebaseInstanceId(com.google.firebase:firebase-iid@@21.1.0:5)
E/FirebaseInstanceId( 4181):  at com.google.firebase.iid.FirebaseInstanceId$$Lambda$0.then(Unknown Source:6)
E/FirebaseInstanceId( 4181):  at com.google.android.gms.tasks.zze.run(com.google.android.gms:play-services-tasks@@18.0.2:1)
E/FirebaseInstanceId( 4181):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)
E/FirebaseInstanceId( 4181):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)
E/FirebaseInstanceId( 4181):  at com.google.android.gms.common.util.concurrent.zza.run(com.google.android.gms:play-services-basement@@18.2.0:2)
E/FirebaseInstanceId( 4181):  at java.lang.Thread.run(Thread.java:1012)
E/FirebaseInstanceId( 4181): Caused by: com.google.firebase.installations.FirebaseInstallationsException: Firebase Installations Service is unavailable.  Please try again later.
E/FirebaseInstanceId( 4181):  at com.google.firebase.installations.remote.FirebaseInstallationServiceClient.createFirebaseInstallation(FirebaseInstallationServiceClient.java:153)
E/FirebaseInstanceId( 4181):  at com.google.firebase.installations.FirebaseInstallations.registerFidWithServer(FirebaseInstallations.java:533)
E/FirebaseInstanceId( 4181):  at com.google.firebase.installations.FirebaseInstallations.doNetworkCallIfNecessary(FirebaseInstallations.java:387)
E/FirebaseInstanceId( 4181):  at com.google.firebase.installations.FirebaseInstallations.lambda$doRegistrationOrRefresh$3$com-google-firebase-installations-FirebaseInstallations(FirebaseInstallations.java:372)
E/FirebaseInstanceId( 4181):  at com.google.firebase.installations.FirebaseInstallations$$ExternalSyntheticLambda0.run(Unknown Source:4)
E/FirebaseInstanceId( 4181):  at com.google.firebase.concurrent.SequentialExecutor$1.run(SequentialExecutor.java:117)
E/FirebaseInstanceId( 4181):  at com.google.firebase.concurrent.SequentialExecutor$QueueWorker.workOnQueue(SequentialExecutor.java:229)
E/FirebaseInstanceId( 4181):  at com.google.firebase.concurrent.SequentialExecutor$QueueWorker.run(SequentialExecutor.java:174)
E/FirebaseInstanceId( 4181):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)
E/FirebaseInstanceId( 4181):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)
E/FirebaseInstanceId( 4181):  at com.google.firebase.concurrent.CustomThreadFactory.lambda$newThread$0$com-google-firebase-concurrent-CustomThreadFactory(CustomThreadFactory.java:47)
E/FirebaseInstanceId( 4181):  at com.google.firebase.concurrent.CustomThreadFactory$$ExternalSyntheticLambda0.run(Unknown Source:4)
И это ошибка, которую я получаю для конфигурации Firebase Remote (также установка Android/Windows):

Код: Выделить всё

E/flutter ( 4181): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: [firebase_remote_config/internal] internal remote config fetch error
E/flutter ( 4181): #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:651:7)
E/flutter ( 4181): #1      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:334:18)
E/flutter ( 4181): 
E/flutter ( 4181): #2      MethodChannelFirebaseRemoteConfig.fetchAndActivate (package:firebase_remote_config_platform_interface/src/method_channel/method_channel_firebase_remote_config.dart:150:29)
E/flutter ( 4181): 
E/flutter ( 4181): #3      FirebaseRemoteConfig.fetchAndActivate (package:firebase_remote_config/src/firebase_remote_config.dart:89:26)
E/flutter ( 4181): 
E/flutter ( 4181): #4      BootService.initFirebase (package:myapp_app/services/boot_service.dart:32:5)
E/flutter ( 4181): 
E/flutter ( 4181): #5      main (package:myapp_app/main.dart:16:3)
E/flutter ( 4181): 
У меня также есть старый MacBook, и я пытался запустить свое приложение на iOS, чтобы проверить, является ли это проблемой Windows/настройки или я могу воссоздать проблему. Тут у меня совсем другая проблема:

Код: Выделить всё

[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: [firebase_remote_config/internal] Failed to get installations token. Error : Error Domain=com.firebase.installations Code=2 "Too many server requests." UserInfo={NSLocalizedFailureReason=Too many server requests.}.
При попытке распечатать токен FCM с помощью устройства Android на моем Mac я получаю ту же ошибку, что и на моем ноутбуке с Windows и устройстве Android (см. выше).
Это мой main.dart:

Код: Выделить всё

void main() async {
WidgetsFlutterBinding.ensureInitialized();

await BootService.initFirebase();
...
...
...

runApp(...)
}
А это мой файл boot_service.dart:

Код: Выделить всё

class BootService {
static initFirebase() async {
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform,
);

/// Remote Config
final remoteConfig = FirebaseRemoteConfig.instance;
await remoteConfig.setConfigSettings(RemoteConfigSettings(
fetchTimeout: const Duration(minutes: 1),
minimumFetchInterval: const Duration(hours: 1),
));

await remoteConfig.setDefaults(ConfigFirebaseRemote.keyValuePairs);

await remoteConfig.fetchAndActivate();
}

...
...
...
}
Я до сих пор не понимаю, как это возможно, что на моей основной установке (iMac) я могу запускать как Android, так и iOS без каких-либо ошибок... Мой google-services.json , а также мой GoogleService-Info.plist установлены правильно.
Вдохновленный этим ответом стека, я также проверил, работает ли моя конфигурация со следующим CURL команда. И да, это работает. Я не получаю никаких ошибок. Он успешно проходит аутентификацию.

Код: Выделить всё

api_key=
project_identifier=
app_id=

curl -H "content-type: application/json" -d "{appId: '$app_id', sdkVersion: 't:1'}" https://firebaseinstallations.googleapis.com/v1/projects/$project_identifier/installations/?key=$api_key
Мой файл packages.yaml:

Код: Выделить всё

environment:
sdk: '>=3.3.1 

Подробнее здесь: [url]https://stackoverflow.com/questions/78179781/flutter-firebase-does-work-on-my-main-setup-but-not-on-my-second-although-its-th[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»