基于外键从firebase获取数据
我正在使用firebase实时数据库,我想根据categoryId获取数据 这里是数据库结构 代码如下:基于外键从firebase获取数据,firebase,dart,firebase-realtime-database,Firebase,Dart,Firebase Realtime Database,我正在使用firebase实时数据库,我想根据categoryId获取数据 这里是数据库结构 代码如下: Future<void> fetchAndSetProducts(String id) async { const url = 'https://random-9006.firebaseio.com/products.json'; try { final response = await http.get(url); final extractedData = j
Future<void> fetchAndSetProducts(String id) async {
const url = 'https://random-9006.firebaseio.com/products.json';
try {
final response = await http.get(url);
final extractedData = json.decode(response.body) as Map<String, dynamic>;
print(extractedData.toString());
}
Future fetchAndSetProducts(字符串id)异步{
常量url=https://random-9006.firebaseio.com/products.json';
试一试{
最终响应=等待http.get(url);
最终extractedData=json.decode(response.body)作为映射;
打印(extractedData.toString());
}
如何构造URL,以便根据传递的类别ID获取产品?您可以使用以下插件从firebase获取数据: 内部
publispec.yaml
:
dependencies:
firebase_database: ^4.1.1
firebase_core: ^0.5.0+1
在main()
函数中初始化Firebase:
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
runApp(MyApp());
}
然后,您可以使用以下方法获取数据:
Future<DataSnapshot> getData(String category){
var dbRef = FirebaseDatabase.instance.reference().child("products");
return await dbRef.orderByChild("categoryId").equalTo(category).once();
}
Future getData(字符串类别){
var dbRef=FirebaseDatabase.instance.reference().child(“产品”);
return wait dbRef.orderByChild(“categoryId”).equalTo(category).once();
}
然后可以在FutureBuilder
中调用此future
方法。对于FutureBuilder
检查:
我想出来了
将URL数据类型设置为final,URL将变为:
final url = 'https://mydburl.firebaseio.com/products.json?orderBy="categoryId"&equalTo="$id"';
你为什么不使用firebase插件?只是学习@PeterHaddadI理解,但是如果你使用以下插件,那么在firebase中获取和操作数据会更容易。感谢详细的解释。你能告诉我如何通过URL获取数据吗?