【发布时间】: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