使用PhoneGap和Firebase开发移动应用程序

4

我正在使用PhoneGap桌面应用程序(在桌面应用程序中使用“创建文件”自动生成文件),并使用Atom编辑器和Firebase进行此项目。总结我的项目,它只是某种调查,所以用户必须填写一些表格。

我无法将表格详细信息上传到Firebase。我确信Firebase已正确连接,因为我能够从Firebase检索数据并在控制台中显示。但它就是无法将表单数据存储其中。

这是我的HTML页面:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
    <script type="text/javascript" src="cordova.js"></script>
    <link rel="stylesheet" type="text/css" href="style.css">
    <title>AMT Survey</title>
</head>
<body>
<a href="index.html"><img src="img/back.png"  style="width:8%;"></a><br>
<form id="amtForm">
<b style="font-size: 27px;">AMT <p></b>
<b class=fs>Screen by: </b><br><input type="text" name="screenby" id="screenby"><br>
<b class=fs>Name of client:</b> <br><input type="text" name="client" id="client"><br>
<b class=fs>Date: </b><br><input type="date" name="date" id="date"><p>
  <input type="submit" class="button" value="Submit">
  <!--<button (click)="postData(name)">submit</button>-->
  </form>

  <script src="https://www.gstatic.com/firebasejs/4.6.2/firebase.js"></script>
   <script scr="main.js"></script>
   </body>
   </html>

这是我的 JavaScript 文件。

 // Initialize Firebase
 (function() {
  const config = {
  apiKey: "",
  authDomain: "",
  databaseURL: "",
  projectId: "",
  storageBucket: "",
  messagingSenderId: ""
  };
  firebase.initializeApp(config);
   }());

  //reference messages collection
  var nameRef = firebase.database().reference('name');

   // listen for form submit
   document.getElementById('amtForm').addEventListener('submit',submitForm);


   function submitForm(e){
   e.preventDefault();

   var name = getInputVal('name');
   var client = getInputVal('client');
   var date = getInputVal('date');

   saveMessage(name,client,date);
   }

   function getInputVal(id){
   return document.getElementById(id).value;
    }

   function saveMessage(name,client,date){
   var newMessageRef = nameRef.push();
   newMessageRef.set({
   name:name,
   client:client,
   date:date
   });
   }
   /*
   postData(name){
   firebase.database().ref().push({name:name});
   }
   */

这些代码来自YouTube视频教程,他似乎没有遇到和我一样的错误。这是视频链接: https://www.youtube.com/watch?v=PP4Tr0l08NE
我的代码有什么问题吗?或者可能是我的设置有误?或者其他原因?
希望这个截图能帮助截图,下划线是我在文本框中键入的值。
这表明数据已被读取,但某种方式它并没有进入Firebase。
FYI:cornova.js脚本不影响连接。这不是致命错误。 enter image description here
1个回答

1
你是否将读取和写入权限设置为true了?
同时,请更改以下内容:
// 引用消息集合 var nameRef = firebase.database().reference('name');
更改为:
// 引用消息集合 var nameRef = firebase.database().ref('name');

回答两个问题都是“是”。 - NoobProgrammer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接