【问题标题】:How to add a Data set to Firestore using PHP?如何使用 PHP 将数据集添加到 Firestore?
【发布时间】:2019-12-12 12:53:08
【问题描述】:

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

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

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

<input id="submitme" class="btn btn-primary" type="submit" style="float:right" value="CREATE ACCOUNT " />
<script type="text/javascript">
    function clicked() {
        if (confirm('Are you sure you want to create this account?')) {
            create.submit();
        } else {
            return 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");

?>

我真的一头雾水,因为我仍在研究如何使用 PHP 和 Firestore 进行开发。任何帮助将不胜感激。

【问题讨论】:

  • "Does nothing" 是一种不具体且广泛的错误描述。你做过调试吗?检查请求如何进入并通过流程?检查了变量在不同场景等中包含的内容?检查服务器错误日志?
  • 此外,在重定向结束时,您似乎在代码块(启动会话和创建函数)之间有一个空行。标头必须位于之前任何输出(包括空行)。
  • @MagnusEriksson 在我的浏览器中运行它后,它只是刷新,好像它已成功添加到 Firestore 但在检查控制台时,什么也没发生。我检查了 IDE 是否报告了任何问题。
  • 您也永远不会使用该函数,也不能在其他任何地方使用它(因为您在声明函数后立即重定向用户)。必须在某个时候调用函数才能真正执行任何操作。

标签: javascript php html firebase google-cloud-firestore


【解决方案1】:

你在使用这个$addedDocRef = $db-&gt;collection('users')-&gt;add($data);add 更改为create($data) 工作得很好我这个改变。

并将这一行 $addedDocRef = $db-&gt;collection('users')-&gt;add($data); 更改为 $addedDocRef = $db-&gt;collection('users')-&gt;document(your document name)-&gt;create($data);

【讨论】:

    猜你喜欢
    • 2021-11-30
    • 2023-03-24
    • 1970-01-01
    • 2021-01-18
    • 1970-01-01
    • 2021-09-27
    • 1970-01-01
    • 2021-10-17
    • 2020-01-05
    相关资源
    最近更新 更多