Javascript 如何使用PHP向Firestore添加数据集?
我正在创建一个注册PHP文件,将新用户添加到Firebase Firestore数据库。基本上,在我创建一个用户帐户后,它应该添加到名为“用户”的Firebase Firestore集合中,然后它将创建一个使用Firebase autoID功能自动生成的新文档 我的问题是我当前的代码什么都不做,没有错误,只是什么都不做 以下是提交的代码:signUp.php (它将其传递到另一个php文件(名为:signUpAction.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的操作): 函数单击
函数单击(){
如果(确认('您确定要创建此帐户吗?')){
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");
?>