小编wor*_*l44的帖子

使用Picasso将Firebase存储中的图像加载到Infowindow中的ImageView,Picasso仅显示占位符

我尝试将带有Picasso的Firebase存储中的图像加载到一个Imageview中,该Imageview放置在Marker的InfoWindowAdapter中.

我非常绝望.问题是Picasso只显示占位符Icon.

我的代码FirebaseStorageRefernce看起来像这个引用此Firebase博客文章:

 StorageReference load = getImage(id);

 load.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
     @Override
     public void onSuccess(Uri uri) {

         downloadUri = uri;

     }
 }).addOnFailureListener(new OnFailureListener() {
     @Override
     public void onFailure(@NonNull Exception e) {
         Log.e("Failure",e.toString());
     }
 });
Run Code Online (Sandbox Code Playgroud)

我得到的downloadUri是有效的,工作正常.现在我使用这个下载Uri for Picasso.

 Picasso picasso = new Picasso.Builder(getApplicationContext()).listener(new Picasso.Listener() {
    @Override
    public void onImageLoadFailed(Picasso picasso, Uri uri, Exception e) {
        e.printStackTrace();
    }
}).build();
picasso.setLoggingEnabled(true);
picasso.load(downloadUri).placeholder(R.drawable.toxic_bait_icon).fit().into(thump, new MarkerCallback(marker));
Run Code Online (Sandbox Code Playgroud)

参考我在StackOverFlow上找到的答案,我做了一个MarkerCallback类:

public class MarkerCallback implements Callback {

com.google.android.gms.maps.model.Marker marker = null;


MarkerCallback(Marker marker)
{ …
Run Code Online (Sandbox Code Playgroud)

android firebase picasso firebase-storage

5
推荐指数
1
解决办法
1万
查看次数

如何在"n"天后删除firebase数据

我想删除我的Friebase中的一些旧数据.我知道这个问题在这里问了很多,但我仍然很难让它发挥作用.

我试试这里找到的解决方案:

Firebase聊天 - 删除旧邮件

但这已被弃用了.

所以我这样试试:

ChildEventListener childEventListener = new ChildEventListener() {
    @Override
    public void onChildAdded(DataSnapshot dataSnapshot, String s) {

        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.DAY_OF_MONTH, -30);

        Log.d(TAG, "onChildAdded:" + dataSnapshot.getKey());

        String key = dataSnapshot.getKey();

        Marker retrievemarker =dataSnapshot.getValue(Marker.class);
        Calendar t3 = new           
        GregorianCalendar
        (c.get(Calendar.YEAR),
         c.get(Calendar.MONTH),
         retrievemarker.getSavedate());

        int date1= calendar.get(Calendar.DATE);
        int date2= t3.get(Calendar.DATE);

        Log.d("date1",""+date1);
        Log.d("date2",""+date2);

        if( date1 == date2 ){

            myRef.child(key).setValue(null);

        }
Run Code Online (Sandbox Code Playgroud)

解释:在我的Firebase中,我保存了一个名为Marker的对象,该对象有一个变量来存储已保存的对象,即Firebase中保存对象的日期.

int date = c.get(Calendar.DATE);
marker.setSavedate(date);
Run Code Online (Sandbox Code Playgroud)

我希望在30天后删除Firebase中的对象.因此,我尝试从今日日期中减去30天,而不是将其与来自对象的已保存项进行比较,如果它等于我将从Firebase中删除该对象.

对于Substraction我参考以下答案:

如何使用Java日历从日期中减去X天?

但它不起作用.如果我今天向Firebase添加一个对象,那么两个日期总是相等的.所以我猜减法不起作用.

我究竟做错了什么?

java android firebase firebase-realtime-database

4
推荐指数
1
解决办法
1万
查看次数