Эй, проблема, с которой я столкнулся, немного необычна. Поэтому я использую веб-представления, и в качестве intialUrl я использую значение, полученное из Google cloud_ firestore. Теперь, чтобы получить эту ссылку из моей базы данных fireStore, требуется около 2 секунд и в течение этого времени мой код работает и думает, что переменная thankGod пуста. Так что даже виджет Text говорит, что переменная thankGod равна нулю в течение первых 2 секунд, а затем возвращает значение после ... Но это не так хорошо, потому что мой webView использует переменную thankGod, когда она пуста. Вот мой код.
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:webview_flutter/webview_flutter.dart';
class Home extends StatefulWidget {
@override
_HomeState createState() => _HomeState();
}
class _HomeState extends State<Home> {
final Completer<WebViewController> _completer = Completer<WebViewController>();
DocumentReference documentReference = Firestore.instance.collection('dailyPictures').document('t1');
Future<void> getData() async{
await documentReference.get().then((datasnapshots) {
setState(() {
thankGod = datasnapshots.data['picture1'];
});
});
}
String thankGod;
@override
void initState() {
super.initState();
getData();
}
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.black,
body: Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(1800),
),
height: MediaQuery.of(context).size.height,
width: MediaQuery.of(context).size.width,
margin: EdgeInsets.fromLTRB(
20,
20,
20,
20
),
child:
Text(
thankGod,
style: TextStyle(
color: Colors.white,
fontSize:32
),
)
WebView(
initialUrl: thankGod,
debuggingEnabled: true,
javascriptMode: JavascriptMode.unrestricted,
onWebViewCreated: ((WebViewController webViewController){
_completer.complete(webViewController);
}),
),
));
}
}
Пожалуйста, мне нужна помощь. Помогите поделиться этим вопросом