Php 使用laravel针对单个请求在移动设备上重复多次推送FCM通知
我有一个叫做userReqest的API。应用程序(android或ios)的用户发送请求,要求提供特定服务。每项服务都有许多提供者。因此,当我收到数据时,首先将其存储在DB中的请求表中,然后接受这个新请求,通过服务id获取该服务提供者的数据,然后将数据存储到发送的请求表中。之后,我应该向每个提供此服务的提供商发送通知,并向其发送一条消息“Youhaveanewrequest”,请求的信息除了通知部分外,其他一切似乎都正常,因为每个提供商都会在其客户端应用程序(android)上收到许多相同请求的通知消息。 我的APIPhp 使用laravel针对单个请求在移动设备上重复多次推送FCM通知,php,laravel,firebase,api,Php,Laravel,Firebase,Api,我有一个叫做userReqest的API。应用程序(android或ios)的用户发送请求,要求提供特定服务。每项服务都有许多提供者。因此,当我收到数据时,首先将其存储在DB中的请求表中,然后接受这个新请求,通过服务id获取该服务提供者的数据,然后将数据存储到发送的请求表中。之后,我应该向每个提供此服务的提供商发送通知,并向其发送一条消息“Youhaveanewrequest”,请求的信息除了通知部分外,其他一切似乎都正常,因为每个提供商都会在其客户端应用程序(android)上收到许多相同请求
public function userRequest(Request $request)
{
# we have a push notification to mobile
$userData = $request->all();
$newRequest = UserRequest::create([
'CategoryID' => $userData['catogry_id'],
'UserID' => $userData['user_id'],
'ServiceID' => $userData['service_id'],
'SubServiceID' => $userData['subService_id'],
'RequestNote' => $userData['ServiceNote']
]);
if($newRequest){
$getdata = UserRequest::all()->last();
# get data for specific provider by service_id
$providerData = DB::table('providers_services')
->join('request','request.ServiceID','providers_services.ServiceID')
->where('request.ServiceID','=',$request['service_id'])
->where('request.RequestID','=',$getdata->RequestID)
->get();
# Store data to Sent_request table
$dataRequest = DB::table('request')
->join('users','users.UserID','=','request.UserID')
->join('service','service.ServicesID','=','request.ServiceID')
->join('sub_service','sub_service.SubServicesID','=','request.SubServiceID')
->join('city','city.CityID','=','users.Address')
->where('request.RequestID','=',$getdata->RequestID)
->select('request.RequestID','users.UserID','sub_service.SubServiceName',
'request.RequestNote','users.name','city.CityName')
->get();
foreach($dataRequest as $daata )
{
$name = $daata->name;
$city = $daata->CityName;
$note = $daata->RequestNote;
$reqid = $daata->RequestID;
$userid = $daata->UserID;
$services = $daata->SubServiceName;
}
// return response()->json($dataRequest);
foreach($providerData as $t)
{
$storeData = New SentRequest([
'ProviderID' => $t->ProviderID,
'RequestID' => $getdata->RequestID,
'RequestStatus'=> 0,
]);
$storeData->save();
# user Push Notification
# send push request to PRovider
# data return with push customer_id , sub
$userPush = DB::table('providers_services')
->join('users','users.UserID','providers_services.ProviderID')
->where('UserID','=',$t->ProviderID)
->get();
foreach($userPush as $push)
{
$to = $push->UserPushNotification;
$title="You have a new Request";
$message= "$name , $city ,$note ,$reqid ,$userid ,$services";
Helper::sendPush($to,$title,$message);
}
}
return response()->json(['message' => 'Request Saved']);
}else{
return response()->json(['message' => 'Not Saved']);
}
}