Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用laravel针对单个请求在移动设备上重复多次推送FCM通知_Php_Laravel_Firebase_Api - Fatal编程技术网

Php 使用laravel针对单个请求在移动设备上重复多次推送FCM通知

Php 使用laravel针对单个请求在移动设备上重复多次推送FCM通知,php,laravel,firebase,api,Php,Laravel,Firebase,Api,我有一个叫做userReqest的API。应用程序(android或ios)的用户发送请求,要求提供特定服务。每项服务都有许多提供者。因此,当我收到数据时,首先将其存储在DB中的请求表中,然后接受这个新请求,通过服务id获取该服务提供者的数据,然后将数据存储到发送的请求表中。之后,我应该向每个提供此服务的提供商发送通知,并向其发送一条消息“Youhaveanewrequest”,请求的信息除了通知部分外,其他一切似乎都正常,因为每个提供商都会在其客户端应用程序(android)上收到许多相同请求

我有一个叫做userReqest的API。应用程序(android或ios)的用户发送请求,要求提供特定服务。每项服务都有许多提供者。因此,当我收到数据时,首先将其存储在DB中的请求表中,然后接受这个新请求,通过服务id获取该服务提供者的数据,然后将数据存储到发送的请求表中。之后,我应该向每个提供此服务的提供商发送通知,并向其发送一条消息“Youhaveanewrequest”,请求的信息除了通知部分外,其他一切似乎都正常,因为每个提供商都会在其客户端应用程序(android)上收到许多相同请求的通知消息。 我的API

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']);
    }
}