Data shows last element data to every element in Json

Viewed 42

I try to get my data from the firestore. But when i try to retrieve the data and store under this format it shows as expected:

{
    "Doc_id1":{
        "name":"ABCD",
        "state":"MH",
    },
    "Doc_id2":{
        "name":"ABC",
        "state":"TN",
}

But when i try this with another format it saves only last leads data to everyone :

{
    "Doc_id1":{
        "first_form":{
            "name":"ABC",
            "state":"TN",,
        }
    },
    "Doc_id2":{
        "first_form":{
            "name":"ABC",
            "state":"TN",,
        }
    }
}

My Code to get the Data :

First structure to get Data :

$leadRef = $firestore->collection('leads');
$query = $leadRef->orderBy('time', 'desc')->limit(4);
$documents = $query->documents();
$data = new \stdClass();
foreach ($documents as $document) {
    if ($document->exists()) {
        $docId = $document->id();
        $data->$docId = $document->data();
    } else {
        printf('Document %s does not exist!' . PHP_EOL, $document->id());
    }
}

Second structure to get Data :

$leadRef = $firestore->collection('leads');
$query = $leadRef->orderBy('time', 'desc')->limit(4);
$documents = $query->documents();
$data = new \stdClass();
$first_formObj = new \stdClass();
foreach ($documents as $document) {
    if ($document->exists()) {
        $docId = $document->id();
        $data->$docId = $first_formObj;
        $first_form = "first_form";
        $first_formObj->$first_form = $document->data();
    } else {
        printf('Document %s does not exist!' . PHP_EOL, $document->id());
    }
}
0 Answers
Related