【发布时间】:2018-06-26 02:57:47
【问题描述】:
我一直在尝试使用 firebase 并成功实现了身份验证 api。但我无法将数据推送到 firbase 数据库。 这是我的代码:
//import firebase from '../../firebase/firebase';
import * as firebase from 'firebase';
export default class Home extends React.Component {
onAddPressed() {
var p = firebase.database().ref().push().set({
title: "Hello World!",
author: "Simon",
location: "Germany",
city: "Muenster",
state: "Germany",
zip: 48155
});
console.log(p);
p.then(function () {
console.log("success")
}, function () {
console.log('rejected promise')
}).catch((e) => console.log(e))
}
render(){
return (
<View>
<Text>This is Home</Text>
<TouchableOpacity
onPress={this.onAddPressed.bind(this)}>
<Text> add User </Text>
</TouchableOpacity>
</View>
);
}
当我点击 Text 时,会返回一个 Promise P,但它永远不会被解决或拒绝。所以基本上什么都没有发生(也没有错误)。 我究竟做错了什么?
Q2. 我应该从哪里导入 firebase?有两种选择:
1. import * as firebase from 'firebase';
2. import firebase from '../../firebase/firebase(我的单身班级)
编辑 我的数据库规则如下:
{
"rules": {
".read": "auth == null",
".write": "auth == null"
}
}
我创建了一个单例 firebase 类,并在其中初始化了我的 firebase
firebase.initializeApp(config);
export default firebase;
调试后我知道,当我执行以下操作时,firebase 没有定义。
firebase
.database()
.ref("list/")
.push({
title: "Title",
createAt: new Date().toString()
});
【问题讨论】:
-
您确定您的数据库 RULES 设置为公开吗?
-
您是否在应用程序中初始化了 Firebase?
firebase.initializeApp({ apiKey: "<API_KEY>", databaseURL: "https://<DATABASE_NAME>.firebaseio.com" })
标签: firebase react-native firebase-realtime-database