我在下拉菜单和 firestore 方面遇到问题,如何将从 firestore 检索到的文档列表绑定到 DropdownButton?目前我有这个错误:
The argument type '(Map<dynamic, dynamic>) ? DropdownMenuItem<String>' can't be assigned to the parameter type '(DocumentSnapshot) ? dynamic'.
Run Code Online (Sandbox Code Playgroud)
来自我的小部件 .dart 的代码:
import 'package:flutter/material.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
class MessageList extends StatelessWidget {
MessageList({this.firestore});
final Firestore firestore;
var _mySelection;
@override
Widget build(BuildContext context) {
return StreamBuilder<QuerySnapshot>(
stream: firestore.collection('preciso-modelos').snapshots(),
builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
if (!snapshot.hasData) return const Text('Loading...');
return new DropdownButton<String>(
isDense: true,
hint: new Text("Select"),
value: _mySelection,
onChanged: (String newValue) {
print (_mySelection);
},
items: snapshot.data.documents.map((Map …Run Code Online (Sandbox Code Playgroud) 我正在开发一个使用Firebase的Firestore将数据发送到Web的应用程序。该应用程序的功能之一是能够在脱机时将数据保存在设备中,并在恢复互联网连接后将其发送到Firestore。我激活了离线持久性,但无法正常工作。
调试控制台:
W/OkHttpClientTransport(28536): Failed closing connection
W/OkHttpClientTransport(28536): javax.net.ssl.SSLException: Write error: ssl=0x7f7acfc408: I/O error during system call, Broken pipe
W/OkHttpClientTransport(28536): at com.google.android.gms.org.conscrypt.NativeCrypto.SSL_write(Native Method)
W/OkHttpClientTransport(28536): at com.google.android.gms.org.conscrypt.NativeSsl.write(:com.google.android.gms@14798020@14.7.98 (040406-222931072):4)
Run Code Online (Sandbox Code Playgroud)
恢复互联网后,如何激活离线持久性并与Firestore同步?
我的密码:
Future<Null> sendFirebaseData(var selectedModel) async {
Firestore.instance.enablePersistence(true);
var certID = await getIDCertificado();
var dateTime = new DateTime.now();
var nowHour = new DateFormat('kk:mm:ss').format(dateTime);
Map<String, dynamic> dataHeader = {
'ID': certID,
};
Map<String, dynamic> finalDataMap = {}..addAll(dataGeneral)
..addAll(dataInstrumento)..addAll(dataPadrao)
..addAll(dataAdicional)..addAll(dataHeader);
await Firestore.instance.collection('certificados').document((certID.toString()))
.setData(finalDataMap);}
Run Code Online (Sandbox Code Playgroud)