在 Android 中将数据从 Firebase 数据库检索到 webView
Retrieving data from Firebase database to webView in Android
我正在构建一个使用 webView 和 Firebase 作为数据库的应用程序,我已经正确地实现了两者,但问题是我的 webView 是没有从 Firebase 数据库中检索 任何数据并且在我打开应用程序时显示空白,我已经通过直接添加 URL 检查了 webView 并且它显示网页,但当我将它与 Firebase 一起使用时它不显示任何内容,请帮助解决这个问题。
I am using Android Studio
webView class 文件:
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 class 文件:
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;
}
}
Firebase 规则:
webView 的 Firebase 数据库结构
您的代码有效。我很确定唯一的问题是 Firebase 数据库规则。
在 Firebase 中更改您的数据库规则,一切都会正常。
我正在构建一个使用 webView 和 Firebase 作为数据库的应用程序,我已经正确地实现了两者,但问题是我的 webView 是没有从 Firebase 数据库中检索 任何数据并且在我打开应用程序时显示空白,我已经通过直接添加 URL 检查了 webView 并且它显示网页,但当我将它与 Firebase 一起使用时它不显示任何内容,请帮助解决这个问题。
I am using Android Studio
webView class 文件:
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 class 文件:
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;
}
}
Firebase 规则:
webView 的 Firebase 数据库结构
您的代码有效。我很确定唯一的问题是 Firebase 数据库规则。
在 Firebase 中更改您的数据库规则,一切都会正常。