【发布时间】:2022-01-24 23:18:18
【问题描述】:
我想在数据库中的节点上放置额外的数据,这个节点是使用 geofire 创建的,当我尝试将这些信息显示在数据库中时,然后像下面一样隐藏,
availableDrivers
3gDKSbnMEBYZsZDwL6lmiQerP9P2
g:
"stq5ncg7kr"
l
0: 30.0688058
1: 31.2387825
我想添加额外的信息,例如
availableDrivers
3gDKSbnMEBYZsZDwL6lmiQerP9P2
g:
"stq5ncg7kr"
l
0: 30.0688058
1: 31.2387825
name: bishoy
age: 24
他们在我的代码下方添加但随后隐藏或删除。
主要
DatabaseReference adminRef = FirebaseDatabase.instance.reference().child("admin");
DatabaseReference driversRef = FirebaseDatabase.instance.reference().child("drivers");
DatabaseReference newRequestRef = FirebaseDatabase.instance.reference().child("Ride Request");
DatabaseReference rideRequestRef = FirebaseDatabase.instance.reference().child("drivers").child(currentfirebaseUser!.uid).child("newRide");
DatabaseReference availableDriver = FirebaseDatabase.instance.reference().child("availableDrivers").child(currentfirebaseUser!.uid);
生成可用驱动程序的函数,我把我的额外信息放在他们的
void makeDriverOnlineNow() async
{
Position position = await Geolocator.getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
currentPosition = position;
Map<String, dynamic> driverMap = {
"name" : driversInformation!.name,
"phone" : driversInformation!.phone,
};
Geofire.initialize("availableDrivers");
Geofire.setLocation(currentfirebaseUser!.uid, currentPosition!.latitude, currentPosition!.longitude);
await availableDriver.update(driverMap);
rideRequestRef.set("searching");
rideRequestRef.onValue.listen((event) {
});
}
void getLocationLiveUpdates()
{
homeTabPageStreamSubscription = Geolocator.getPositionStream().listen((Position position)
{
currentPosition = position;
if(isDriverAvailable == true)
{
Geofire.setLocation(currentfirebaseUser!.uid, position.latitude, position.longitude);
}
LatLng latLng = LatLng(position.latitude, position.longitude);
newcontrollerGoogleMap!.animateCamera(CameraUpdate.newLatLng(latLng));
});
}
【问题讨论】:
标签: flutter dart firebase-realtime-database geofire