我使用firebase初始化我的web应用程序,然后将新数据添加到数据库中:{' title':' hello world!'}。然后我尝试获取这些数据:database.ref().child('title')
我得到了奇怪的对象:
我的代码:
export class App extends Component {
constructor(props) {
super(props);
// Initialize Firebase
var config = {
apiKey: "&&&&&&&dbBJY_ie3CbXtnL6M6QBEL2JqWI",
authDomain: "&&&&&&&.firebaseapp.com",
databaseURL: "&&&&&test-61197.firebaseio.com",
storageBucket: "test-&&&&.appspot.com",
messagingSenderId: "7&&&1193299"
};
firebase.initializeApp(config);
// Get a reference to the database service
var database = firebase.database();
console.log(database.ref().child('title'));
}
login() {
console.log('login');
// Log the user in via Twitter
}
render() {
return (
<View style={styles.container}>
<Touchable style={styles.loginBtn} onPress={ this.login }>
<Text style={styles.loginBtnText}>login</Text>
</Touchable>
</View>
);
}
}
如何获取我的数据? Firebase版本:3.4.0
答案 0 :(得分:2)
在Firebase中有两种检索数据的方法。首先是使用监听器等待RTDB上的事件发生:
var myTitleRef = database.ref('title');
myTitleRef.on("value",function(snapshot){
//snapshot contains the data you're looking for
HandleTitle(snapshot);
});
另一种方法是在数据上调用REST GET,在这种情况下,您需要数据库的整个URL并添加&#34; .json&#34;在末尾。在这个例子中,我将使用jQuery:
var myurl = pathToYourDatabase + 'title.json';
$.ajax({
url: myurl,
jsonp: "callback",
dataType: "jsonp",
success: function( response ) {
//Response contains data
DoSomethingWithTitle(response);
}
});
有关详细信息,请阅读文档: https://firebase.google.com/docs/web/setup
答案 1 :(得分:2)
Firebase查询是异步的。因此,您需要注册一个回调,以便Firebase可以在结果准备就绪时通知您。
试试这个:
database.ref().child('title').on('value', (snapshot) => {
console.log(snapshot.val());
});
您可以阅读this了解详情。
答案 2 :(得分:0)
引用为空且数据库未被调用。
示例:
正确的方式:
var data = database().ref('/your root destination').child('title');
您错过了数据库之后的()
。
更新: 您上面演示的代码和代码实际上是创建数据库条目。
现在从此条目中获取数据:
data.once('value').then(function(snapshot) {
var objectData = snapshot.val();
});
希望这有帮助