登錄時出現問題,它沒有顯示資料庫中的資料,似乎問題出在獲取資料的函式中,但我不知道問題出在哪里
這是從資料庫中獲取資料的函式:
Future<void> fetchProperties() async {
final url = Uri.https(
'aqarlibya-4d39c-default-rtdb.europe-west1.firebasedatabase.app',
'/properties.json?auth=$authToken');
try {
final response = await http.get(url);
final extractedData = json.decode(response.body) as Map<String, dynamic>?;
if (extractedData == null) {
return;
}
final List<Property> loadedProperties = [];
extractedData.forEach((propId, propData) {
loadedProperties.add(Property(
id: propId,
name: propData['name'],
description: propData['description'],
type: propData['type'],
propertySize: propData['propertySize'],
bedrooms: propData['bedrooms'],
price: propData['price'],
cityId: propData['cityId'],
imageUrl: propData['imageUrl'],
isFav: propData['isFav'],
));
});
_items = loadedProperties;
notifyListeners();
} catch (error) {
throw (error);
}
}
這是主檔案中代碼的一部分:
Widget build(BuildContext context) {
return MultiProvider(
providers: [
ChangeNotifierProvider.value(
value: Auth(),
),
ChangeNotifierProxyProvider<Auth, Properties>(
create: (ctx) => Properties('', []),
update: (ctx, auth, previousProperties) => Properties(
auth.token,
previousProperties == null ? [] : previousProperties.items,
),
),
],
我試圖尋找問題,但找不到

uj5u.com熱心網友回復:
據我從Uri.https的檔案中可以看出,您需要在可選的第三個引數中傳遞引數。所以:
final url = Uri.https(
'aqarlibya-4d39c-default-rtdb.europe-west1.firebasedatabase.app',
'/properties.json',
{ 'auth': authToken }
);
uj5u.com熱心網友回復:
你確定你的網址和你的令牌是好的嗎?
似乎您嘗試對非 json 的內容進行 json 解碼。您呼叫的回傳值似乎是“未找到”。
嘗試添加 atry {} catch(e) {}并列印response以更好地查看錯誤。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/529313.html
標籤:Google Cloud Collective json扑镖firebase-实时数据库
