我想从存储在Firebase数据库中的URL中获取数据并在我的React Native应用程序中显示数据,我尝试了一些有关Promies和Async / Await的教程,但我似乎无法应用它们我的问题在于我的代码:
listenForItems(itemsRef) {
itemsRef.on('value', (snap) => {
var items = [];
snap.forEach((child) => {
items.push({
url: child.val().url,
_key: child.key
});
});
this.setState({ urls: items });
//this.fetchData(); calling fetch here causes duplicate data
});
this.fetchData(); // calling fetch here does not display data
}
如何使用promises或async / await异步显示数据?
答案 0 :(得分:0)
您应该使用布尔标志来指示初始数据已加载到' value'中。 '值'将立即加载所有数据,数据集的任何更改都将导致重新触发。
如果您不想重新触发,请考虑使用users.to_a.map(&:serializable_hash)
users.map(&:attributes)
users.map { |r| r.attributes.symbolize_keys }
。
<activity
android:name=".YourActivity"
android:launchMode="singleInstance" />
您可能希望阅读此https://stackoverflow.com/a/27995609/1405577条评论,说明如何区分“价值”。和&#39; child_added&#39;听众。最后查看Firebase JS SDK documentation for Reference.on