【发布时间】:2020-08-11 16:10:26
【问题描述】:
我正在构建一个使用 webView 和 Firebase 作为数据库的应用程序,我已经正确实现了两者,但问题是我的 webView 没有检索 Firebase 数据库中的任何数据,当我打开应用程序时显示为空白,我已经通过直接添加 URL 检查了 webView,它显示了网页,但是当我将它与 Firebase 一起使用时它没有显示任何内容,请帮助解决这个问题。
我正在使用 Android Studio
webView 类文件:
public class webViewNews extends AppCompatActivity {
private WebView webviewthis;
private RecyclerView webVieRes;
private DatabaseReference mdataRef;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.webview_page);
mdataRef = FirebaseDatabase.getInstance().getReference().child("weber");
webviewthis = (WebView)findViewById(R.id.webView_news);
webviewthis.setWebViewClient(new WebViewClient());
webviewthis.getSettings().setJavaScriptEnabled(true);
webviewthis.getSettings().setLoadsImagesAutomatically(true);
mdataRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
post2web webView = dataSnapshot.getValue(post2web.class);
webviewthis.loadUrl(webView);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
webView xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<WebView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/webView_news"/>
</LinearLayout>
getter 和 setter 类文件:
public class post2web {
private String webViewPost;
public post2web(){
}
public post2web(String webViewPost) {
this.webViewPost = webViewPost;
}
public String getWebViewPost() {
return webViewPost;
}
public void setWebViewPost(String webViewPost) {
this.webViewPost = webViewPost;
}
}
用于 webView 的 Firebase 数据库结构
【问题讨论】:
-
你应该这样做
webviewthis.loadUrl(webView.getWebViewPost()); -
@MarianoCordoba 已经尝试过了,但它不起作用:(
-
您可以访问 Firebase 数据库吗?检查你的规则。
-
不要忽视
onCancelled:@Override public void onCancelled(DatabaseError databaseError) { throw databaseError.toException(); } -
@FrankvanPuffelen 这个 throw databaseError.toException(); 会发生什么
标签: android firebase webview firebase-realtime-database android-webview