好的,为了了解firebase的工作原理,我创建了一个简短的小文件来更新我的数据集。我周一晚上(2016年5月30日)睡觉时一切正常。我没有改变我创建的app.js文件,我没有在星期二触摸它,因为我正在旅行。那么,今天,星期三(2016年1月6日),我运行了我的app.js文件,它在第25行挂起。它将newPostKey发布到控制台,但后来没有做任何其他事情。它不会继续执行app.js文件的其余部分。谁能告诉我这里做错了什么?或者firebase改变了什么? (注意:身份验证 - 我的规则已设置好,所以任何人都可以编写,但只有经过身份验证的用户才能阅读。) 这是代码的副本(减去我的安全密钥):
// Initialize Firebase
var config = {
apiKey: "",
authDomain: "",
databaseURL: "",
storageBucket: "",
};
firebase.initializeApp(config);
var provider = new firebase.auth.GoogleAuthProvider();
var database = firebase.database();
var auth = firebase.auth();
$(document).ready(function () {
/* Test of the Update functionality */
firebase.auth().signInWithPopup(provider).then(function(result) {
var token = result.credential.accessToken;
var user = result.user;
console.log(user); //this works at this point
var donationsCollection = database.ref('donations');
var newPostKey = donationsCollection.child('donations').push().key;
console.log(newPostKey); //it does post a key to the console
var postData = {
amount: '125.00',
givingType: 'General Donation',
memo: 'It is just optional',
fullName: user.displayName,
emailAddress: user.email,
mobileNbr: '123-555-1212',
uid: uid
};
// nothing comes out at the command line anymore
console.log("You stored data in the var postData " + postData);
var myDonation = database.ref('/donations/' + newPostKey);
myDonation.update(postData); //nothing happens here anymore
})
答案 0 :(得分:1)
好吧,我终于能够想象(在我朋友的帮助下)。不知何故,uid的变量声明(var uid = result.user.uid;)被删除了。一旦我将其添加回来,我就能够再次发布到数据库。