【发布时间】:2021-07-19 09:01:06
【问题描述】:
我有在真正的安卓设备上运行的颤振应用程序。我正在使用身份验证、firestore、存储、云功能。我正在尝试使用 firebase 模拟器,但没有运气。以下是我尝试过的事情:
在 Flutter 的主函数中,我调用了这个函数:
Future<void> useEmulators() async {
// this is the ip of my mac on the router
final ip = "192.168.1.133";
await FirebaseAuth.instance.useAuthEmulator(ip, 9099);
await FirebaseStorage.instance.useStorageEmulator(ip, 9199);
FirebaseFirestore.instance.useFirestoreEmulator(ip, 8080, sslEnabled: false);
FirebaseFunctions.instanceFor(region: 'us-east4')
.useFunctionsEmulator(ip, 5001);
}
我从我的 main() 中调用这个函数,如下所示:
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
// this is where the function is called
await useEmulators();
FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);
final sharedPreferences = await SharedPreferences.getInstance();
await preloadSVGs();
final hiveDbService = HivedbService();
await hiveDbService.init();
return runApp(
ProviderScope(
// observers: [Logger()],
overrides: [
sharedPreferencesProvider.overrideWithValue(sharedPreferences),
hiveDbServiceProvider.overrideWithValue(hiveDbService),
],
child: App(),
),
);
}
然后我像这样更新了 firebase.json:
{
"firestore": {
"rules": "firestore.rules",
"indexes": "firestore.indexes.json"
},
"functions": {
"predeploy": ["npm --prefix \"$RESOURCE_DIR\" run lint"],
"source": "functions",
"runtime": "nodejs12"
},
"storage": {
"rules": "storage.rules"
},
"emulators": {
"auth": {
"host": "192.168.1.133",
"port": 9099
},
"functions": {
"host": "192.168.1.133",
"port": 5001
},
"firestore": {
"host": "192.168.1.133",
"port": 8080
},
"ui": {
"enabled": true,
"port": 4000
},
"pubsub": {
"host": "192.168.1.133",
"port": 8085
},
"storage": {
"host": "192.168.1.133",
"port": 9199
}
}
}
我像这样更新了 AndroidManifest.xml:
<application android:usesCleartextTraffic="true">
</application>
我这样运行模拟器:
firebase emulators:start
当我尝试注册时,没有任何反应。
我希望创建一个新的身份验证记录或文档,但没有任何反应。该应用程序会等待一段时间,然后超时。
谁能告诉我我做错了什么??
提前致谢。
【问题讨论】:
标签: firebase flutter firebase-tools