Firebase
をBaaS
としているアプリを開発しています。正確なfirebase参照を与えた後でも、 'バウンスに失敗しました'例外を取得しています。詳細はこちら
問題は、私がcom.firebase.client.FirebaseException: Failed to bounce to type at com.firebase.client.DataSnapshot.getValue(DataSnapshot.java:183) at com.abc.xyz.MainActivity$2.onDataChange(MainActivity.java:119)
を取得しても、適切なfirebaseの参照を与えた後です。スタックトレースの別の注目すべき行はCaused by: com.fasterxml.jackson.databind.JsonMappingException: Conflicting setter definitions for property "colorFilter": android.widget.ImageView#setColorFilter(1 params) vs android.widget.ImageView#setColorFilter(1 params)
です。ここで
はFirebase
参照です:Firebase mFirebaseRef = new Firebase("https://appname.firebaseio.com/users");
は、ここでは、コードの私の作品です:
mFirebaseRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
System.out.println("There are " + snapshot.getChildrenCount() + " blog posts");
for (DataSnapshot postSnapshot : snapshot.getChildren()) {
//error on this line
UsersDataFromFirebase post = postSnapshot.getValue(UsersDataFromFirebase.class);
View nameView = navigationView.getHeaderView(0);
userName = (TextView) nameView.findViewById(R.id.userName);
userName.setText(post.getUserName());
System.out.println(post.getUserName());
System.out.println(post.getUserEmail());
// View emailView = navigationView.getHeaderView(0);
// userEmail = (TextView) emailView.findViewById(R.id.userEmail);
// userEmail.setText();
userImageUrl = (URL) authData.getProviderData().get("profileImageUrl");
String userImageUrlString = userImageUrl.toString();
URL url = null;
try {
url = new URL(userImageUrlString);
} catch (MalformedURLException e) {
e.printStackTrace();
}
try {
image = BitmapFactory.decodeStream(url.openConnection().getInputStream());
} catch (IOException e) {
e.printStackTrace();
}
View imageView = navigationView.getHeaderView(0);
userImage = (ImageView) imageView.findViewById(R.id.userImage);
userImage.setImageBitmap(image);
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
System.out.println("The read failed: " + firebaseError.getMessage());
Toast.makeText(getBaseContext(), firebaseError.getMessage(), Toast.LENGTH_LONG).show();
}
});
} else {
android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(MainActivity.this);
builder.setTitle("No internet connection!");
builder.setMessage("Please connect to the internet.");
builder.setPositiveButton("Open Settings", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Intent intent = new Intent(Settings.ACTION_SETTINGS);
startActivity(intent);
//progressBar.setVisibility(View.INVISIBLE);
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
//progressBar.setVisibility(View.INVISIBLE);
}
});
builder.show();
}
はここUsersDataFromFirebase.java
ファイルのコードです:Firebase
として
public class UsersDataFromFirebase {
private String userName;
private String userEmail;
private ImageView userImage;
public UsersDataFromFirebase() {
// empty default constructor, necessary for Firebase to be able to deserialize blog posts
}
public String getUserName() {
return userName;
}
public String getUserEmail() {
return userEmail;
}
public ImageView getUserImage() {
return userImage;
}
}
私は、私にとって非常に新しいものですここで何がうまくいかないのか理解できません。
お知らせください。
ありがとうございます!
あなたのコード内で何行MainActivity.java:119ているのですか?また、あなたのJSONのスニペットを追加します。これは、Firebaseダッシュボードの[エクスポート]ボタンをクリックすることで簡単に取得できます。 –
@FrankvanPuffelen私はエラーが発生している行について言及しました。 JSONのスニペット:{ "users":{ "20fb1a2a-5658-4b36-af28-c807dc6b187a":{ "userEmail": "[email protected]"、 "userName": "Hammad Nasir" }} } ' –
@FrankvanPuffelenください応える... –