为什么 cloud_firestore 即使在完成配置后也无法在 FlutterFire 中工作?
Why is cloud_firestore not working in FlutterFire even after complete configuration?
我想从 Firebase 获取数据,为此我已将 Firebase 集成到我的 Flutter 应用程序中 SciFish.
在pubspec.yaml中,我添加了插件:
dependencies:
firebase_core: ^1.17.0
cloud_firestore: ^3.1.16
flutterfire configure
根目录中的命令看起来不错:
我可以看到 android/app/google-services.json :
初始化 Firebase 后,我的 main()
看起来像:
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform,
);
runApp(const MyApp());
}
在 TemperaturePage 中,我创建了获取数据的方法,但 await 中的打印语句不起作用。
final _firestore = FirebaseFirestore.instance;
void temperatureStream() async{
print('this prints');
await for(var snapshot in _firestore.collection('temperature').snapshots()){
for(var temp in snapshot.docs){
print('this doesnt');
print(temp.data());
}
}
}
ListTile(
title: const Text('Show Temperature'),
onTap: () {
temperatureStream();
}
)
运行 控制台说,
Performing hot restart...
Syncing files to device sdk gphone64 x86 64...
Restarted application in 1,994ms.
D/EGL_emulation(10450): app_time_stats: avg=6669.94ms min=6669.94ms max=6669.94ms count=1
D/EGL_emulation(10450): app_time_stats: avg=36988.71ms min=420.94ms max=73556.49ms count=2
D/EGL_emulation(10450): app_time_stats: avg=128.04ms min=13.50ms max=930.64ms count=9
I/flutter (10450): this prints
W/DynamiteModule(10450): Local module descriptor class for com.google.android.gms.providerinstaller.dynamite not found.
I/DynamiteModule(10450): Considering local module com.google.android.gms.providerinstaller.dynamite:0 and remote module com.google.android.gms.providerinstaller.dynamite:0
W/ProviderInstaller(10450): Failed to load providerinstaller module: No acceptable module com.google.android.gms.providerinstaller.dynamite found. Local version is 0 and remote version is 0.
D/EGL_emulation(10450): app_time_stats: avg=345.94ms min=10.15ms max=4548.11ms count=14
I/flutter (10450): this prints
D/EGL_emulation(10450): app_time_stats: avg=131.44ms min=14.88ms max=2143.03ms count=19
I/flutter (10450): this prints
尝试解决出现在第一个 onTap()
上的这些警告,但是 #462 and #164 doesn't say anything nor does or this one。
在android/app/src/main/AndroidManifest.xml中,我尝试在<application />
之前添加这两行
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
但结果还是一样。我在这里错过了什么?
我的 Firebase 集合如下所示:
构建平台:Windows10Pro
颤动版本:2.10.4
飞镖版本:2.16.2
正如我们在会议中讨论的那样,您的 collection 名称中有一个空的 space。
- “温度”
这就是它返回 null
的原因。
未来提示
- 确保在构建数据时检查您的 firebase collection 名称中没有空的 spaces :)
干杯!
我想从 Firebase 获取数据,为此我已将 Firebase 集成到我的 Flutter 应用程序中 SciFish.
在pubspec.yaml中,我添加了插件:
dependencies:
firebase_core: ^1.17.0
cloud_firestore: ^3.1.16
flutterfire configure
根目录中的命令看起来不错:
我可以看到 android/app/google-services.json :
初始化 Firebase 后,我的 main()
看起来像:
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform,
);
runApp(const MyApp());
}
在 TemperaturePage 中,我创建了获取数据的方法,但 await 中的打印语句不起作用。
final _firestore = FirebaseFirestore.instance;
void temperatureStream() async{
print('this prints');
await for(var snapshot in _firestore.collection('temperature').snapshots()){
for(var temp in snapshot.docs){
print('this doesnt');
print(temp.data());
}
}
}
ListTile(
title: const Text('Show Temperature'),
onTap: () {
temperatureStream();
}
)
运行 控制台说,
Performing hot restart...
Syncing files to device sdk gphone64 x86 64...
Restarted application in 1,994ms.
D/EGL_emulation(10450): app_time_stats: avg=6669.94ms min=6669.94ms max=6669.94ms count=1
D/EGL_emulation(10450): app_time_stats: avg=36988.71ms min=420.94ms max=73556.49ms count=2
D/EGL_emulation(10450): app_time_stats: avg=128.04ms min=13.50ms max=930.64ms count=9
I/flutter (10450): this prints
W/DynamiteModule(10450): Local module descriptor class for com.google.android.gms.providerinstaller.dynamite not found.
I/DynamiteModule(10450): Considering local module com.google.android.gms.providerinstaller.dynamite:0 and remote module com.google.android.gms.providerinstaller.dynamite:0
W/ProviderInstaller(10450): Failed to load providerinstaller module: No acceptable module com.google.android.gms.providerinstaller.dynamite found. Local version is 0 and remote version is 0.
D/EGL_emulation(10450): app_time_stats: avg=345.94ms min=10.15ms max=4548.11ms count=14
I/flutter (10450): this prints
D/EGL_emulation(10450): app_time_stats: avg=131.44ms min=14.88ms max=2143.03ms count=19
I/flutter (10450): this prints
尝试解决出现在第一个 onTap()
上的这些警告,但是 #462 and #164 doesn't say anything nor does
在android/app/src/main/AndroidManifest.xml中,我尝试在<application />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
但结果还是一样。我在这里错过了什么?
我的 Firebase 集合如下所示:
构建平台:Windows10Pro 颤动版本:2.10.4 飞镖版本:2.16.2
正如我们在会议中讨论的那样,您的 collection 名称中有一个空的 space。
- “温度”
这就是它返回 null
的原因。
未来提示
- 确保在构建数据时检查您的 firebase collection 名称中没有空的 spaces :)
干杯!