我想將鍵添加到串列中,但它被添加為物件而不是字串。
var myList = [];
await database.ref().child("team").orderByChild(uid).equalTo("test").once().then((DatabaseEvent databaseEvent){
if (databaseEvent.snapshot.value != null) {
Map<dynamic, dynamic>values = databaseEvent.snapshot.value as Map<dynamic, dynamic>;
myList.add(values.keys.toString());
print(myList);
}
});
輸出: [(-NE0pl0456878VCsb8)]
我想要的輸出: [-NE0pl0456878VCsb8]
資料庫結構
team
-NE0pl0456878VCsb8
-irthjdhs46jfj43gh
uj5u.com熱心網友回復:
我試圖在這里模擬,看看它是否適合你:
import 'package:flutter/material.dart';
class ScreenOne extends StatefulWidget {
ScreenOne({Key? key}) : super(key: key);
@override
State<ScreenOne> createState() => _ScreenOneState();
}
class _ScreenOneState extends State<ScreenOne> {
//Map<dynamic, dynamic>
final values = {'keyOne': 'abc', 1: 'dfg', 'keyT': 46};
var myList = ['keyFour', 'keySix'];
void addAll() {
setState(() {
myList.addAll(values.keys.map((e) => e.toString()));
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('ScreenOne'),
),
body: Column(
children: [
ElevatedButton(
onPressed: () {
addAll();
},
child: const Text('Add')),
Expanded(
child: ListView.builder(
itemCount: myList.length,
itemBuilder: (_, index) {
return Card(
child: Text(myList[index]),
);
},
),
)
],
),
);
}
}
uj5u.com熱心網友回復:
您應該按索引獲取鍵,您將所有鍵添加到串列中
而不是myList.add(values.kays.toString());使用這個myList.add(values.keys[0].toString());
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/516634.html
