Javascript 如何使用PHP向Firestore添加数据集?

Javascript 如何使用PHP向Firestore添加数据集?,javascript,php,html,firebase,google-cloud-firestore,Javascript,Php,Html,Firebase,Google Cloud Firestore,我正在创建一个注册PHP文件,将新用户添加到Firebase Firestore数据库。基本上,在我创建一个用户帐户后,它应该添加到名为“用户”的Firebase Firestore集合中,然后它将创建一个使用Firebase autoID功能自动生成的新文档 我的问题是我当前的代码什么都不做,没有错误,只是什么都不做 以下是提交的代码:signUp.php (它将其传递到另一个php文件(名为:signUpAction.php),该文件实际上执行将其放入firestore的操作): 函数单击

我正在创建一个注册PHP文件,将新用户添加到Firebase Firestore数据库。基本上,在我创建一个用户帐户后,它应该添加到名为“用户”的Firebase Firestore集合中,然后它将创建一个使用Firebase autoID功能自动生成的新文档

我的问题是我当前的代码什么都不做,没有错误,只是什么都不做

以下是提交的代码:signUp.php (它将其传递到另一个php文件(名为:signUpAction.php),该文件实际上执行将其放入firestore的操作):


函数单击(){
如果(确认('您确定要创建此帐户吗?')){
create.submit();
}否则{
返回false;
}
}
以下是执行该操作的整个.PHP文件(由于缺少视频教程,这是我对其工作原理的理解):

<?php session_start();?>

<?php
    require_once("../diabeatis/vendor/autoload.php");

    // namespace Google\Cloud\Samples\Firestore;

    use Google\Cloud\Firestore\FirestoreClient;
    function add_doc_data_with_auto_id($projectId){

        $db = new FirestoreClient([
            'assumethatthereisanIDhere' => $projectId,
        ]);

        $data = [
            'allergies' => ($_POST['allergies']),
            'birthDate' => $_POST['birthDate'],
            'diabetesComplication' => ($_POST["diabetesComplication"]),
            'diabetesType' => ($_POST['diabetesType']),
            'firstName' => ($_POST['firstName']),
            'height' => ($_POST['height']),
            'lastName' => ($_POST['lastName']),
            'sex' => ($_POST['sex']),
            'weight' => ($_POST['weight'])
        ];
        $addedDocRef = $db->collection('users')->add($data);
        printf('Added document with ID: %s' . PHP_EOL, $addedDocRef->id());

        echo ("<script LANGUAGE='JavaScript'>
        window.alert('The account has been successfully created.');
        window.location.href='../sys/signUp.php';
        </script>");
            exit;
    }

    header("Location: "."../sys/signUp.php");

?>


您是否正在使用此
$addedocref=$db->collection('users')->add($data)更改
添加
创建($data)
完成此更改


并将这一行更改为
addedDocRef=$db->collection('users')->add($data)
到这个
$addedDocRef=$db->collection('users')->文档(您的文档名)->创建($data)

“不执行任何操作”是一种不具体且宽泛的错误描述。你做过调试吗?检查了请求是如何进入和通过流程的?检查不同场景中的变量包含哪些内容等?检查服务器错误日志?此外,代码块之间似乎有一条空行(启动会话并装入函数),而在重定向上结束。标题必须放在任何输出(包括空行)之前。@MagnusEriksson在我的浏览器中运行它之后,它只是刷新,就像它成功添加到Firestore一样,但在控制台中检查时,什么也没有发生。我检查了IDE是否存在问题,它报告没有任何问题。您也从未使用过该函数,也不能在其他任何地方使用它(因为您在声明函数后立即重定向用户)。函数必须在某个时刻被调用,才能实际执行任何操作。
<?php session_start();?>

<?php
    require_once("../diabeatis/vendor/autoload.php");

    // namespace Google\Cloud\Samples\Firestore;

    use Google\Cloud\Firestore\FirestoreClient;
    function add_doc_data_with_auto_id($projectId){

        $db = new FirestoreClient([
            'assumethatthereisanIDhere' => $projectId,
        ]);

        $data = [
            'allergies' => ($_POST['allergies']),
            'birthDate' => $_POST['birthDate'],
            'diabetesComplication' => ($_POST["diabetesComplication"]),
            'diabetesType' => ($_POST['diabetesType']),
            'firstName' => ($_POST['firstName']),
            'height' => ($_POST['height']),
            'lastName' => ($_POST['lastName']),
            'sex' => ($_POST['sex']),
            'weight' => ($_POST['weight'])
        ];
        $addedDocRef = $db->collection('users')->add($data);
        printf('Added document with ID: %s' . PHP_EOL, $addedDocRef->id());

        echo ("<script LANGUAGE='JavaScript'>
        window.alert('The account has been successfully created.');
        window.location.href='../sys/signUp.php';
        </script>");
            exit;
    }

    header("Location: "."../sys/signUp.php");

?>