當某個檔案存在時,我想轉到另一頁,然后當檔案不存在時。當應用程式用戶有連接時,下面的代碼運行良好。但是,當與 Internet 的連接丟失時,該函式將始終回傳找不到查詢。我想要做的是讓函式在無法連接到 firestore 時出錯,這樣我就可以停留在同一頁面上并重試。
先感謝您!
Future<bool> checkIfDocExists({String? id}) async {
var snapshot = await FirebaseFirestore.instance
.collection('rentals')
.where('DeviceID', isEqualTo: id)
.where('Status', isEqualTo: 0)
.get();
return (snapshot.docs.isNotEmpty);
}
uj5u.com熱心網友回復:
在這種情況下,您應該檢查設備的互聯網連接。有一個包可以幫助您檢查互聯網狀態。
connectivity_plus=> https://pub.dev/packages/connectivity_plus
connectivity=> https://pub.dev/packages/connectivity
代碼示例:
ConnectivityResult? _connectivityResult;
Future<void> _checkConnectivityState() async {
final ConnectivityResult result = await Connectivity().checkConnectivity();
if (result == ConnectivityResult.wifi) {
print('Connected to a Wi-Fi network');
} else if (result == ConnectivityResult.mobile) {
print('Connected to a mobile network');
} else {
print('Not connected to any network');
}
setState(() {
_connectivityResult = result;
});
}
您可以在閱讀檔案之前檢查互聯網連接firestore。
uj5u.com熱心網友回復:
如果要確保從服務器讀取檔案,可以為此指定源選項:
...
.get(GetOptions(source: Source.server));
使用此選項,當無法從服務器讀取檔案時,呼叫將失敗。
另請參閱 FlutterFire 參考檔案Source。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/349402.html
標籤:火力基地 扑 谷歌云firestore
