简体   繁体   English

Android Firebase实时异常java.lang.StackOverflowError:堆栈大小8MB

[英]Android Firebase Realtime Exception java.lang.StackOverflowError: stack size 8MB

Ihave a probleme Exception java.lang.StackOverflowError: stack size 8MB in my aplication , so i'm trying to add an object CAR have its attribuetes (Uri,brand,matricule... ) To a specific User in its chlid Cars This is My code 我有一个问题异常java.lang.StackOverflowError:我的应用程序中堆栈大小为8MB,所以我试图将对象的属性(Uri,brand,matricule ...)添加到其对象中的特定用户。我的密码

public void uploadtothefirebase() {

    progressBar = findViewById(R.id.progressBar3);
    auth = FirebaseAuth.getInstance();
    database = FirebaseDatabase.getInstance();
    reference = database.getReference("User");

    // Upload the pic to the Firebase storage and save the Uri and set it in the Realtime
    storage= FirebaseStorage.getInstance().getReference();
    StorageReference filepath = storage.child("photoscars").child(uricarimage.getLastPathSegment());
    filepath.putFile(uricarimage).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
        @Override
        public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
            auth = FirebaseAuth.getInstance();
            downloadeduri= taskSnapshot.getDownloadUrl();
            Toast.makeText(getApplicationContext(),"Uri = "+downloadeduri.toString(),Toast.LENGTH_SHORT).show();

            progressBar = findViewById(R.id.progressBar3);
            auth = FirebaseAuth.getInstance();
            database = FirebaseDatabase.getInstance();
            reference = database.getReference("User");
            assert firebaseUser != null;
            firebaseUser = auth.getCurrentUser();

            reference.orderByChild("fullName").equalTo(firebaseUser.getDisplayName()).addChildEventListener(new ChildEventListener() {
                @Override
                public void onChildAdded(DataSnapshot dataSnapshot, String s) {
                    String Uid= dataSnapshot.getKey();
                    brand = inputbrand.getText().toString();
                    matricule = inputmatricule.getText().toString();
                    numcartegrise = inputcartegrise.getText().toString();
                    progressBar = findViewById(R.id.progressBar3);


                    car = new Car(downloadeduri,brand,spin_val,matricule,numcartegrise);
                    reference.child(Uid).setValue(car);

                }
                @Override
                public void onChildChanged(DataSnapshot dataSnapshot, String s) {}
                @Override
                public void onChildRemoved(DataSnapshot dataSnapshot) {}
                @Override
                public void onChildMoved(DataSnapshot dataSnapshot, String s) {}
                @Override
                public void onCancelled(DatabaseError databaseError) {}});






            progressBar.setVisibility(View.GONE);
            final AlertDialog.Builder adb = new AlertDialog.Builder(Setinformationcar.this);
            adb.setTitle("The Car has Added ");
            adb.setMessage("The Car has Added To Your List You can Use it to Create Trip ");
            adb.setCancelable(false);

            adb.setPositiveButton(" OK", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {

                    startActivity(new Intent(getApplication(),Mycars.class));
                    finish();
                }});

            adb.show();

        }
    });
}

Can you Help me to solve this !! 你能帮我解决这个问题!

在此处输入图片说明

Change this: 更改此:

downloadeduri= taskSnapshot.getDownloadUrl();

to this: 对此:

String downloadeduri= taskSnapshot.getDownloadUrl().toString();

Firebase does not accept uri in the database so cast it to String to be able to add it to the database. Firebase在数据库中不接受uri,因此将其强制转换为String即可将其添加到数据库中。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Android Firebase java.lang.StackOverflowError:用户上传图像时堆栈大小 8MB 错误 - Android Firebase java.lang.StackOverflowError: stack size 8MB error when user is uploading an image stack = java.lang.StackOverflowError:堆栈大小8MB - stack=java.lang.StackOverflowError: stack size 8MB 错误java.lang.StackOverflowError:堆栈大小8MB - Error java.lang.StackOverflowError: stack size 8MB java.lang.StackOverflowError:视图中的堆栈大小为8MB - java.lang.StackOverflowError: stack size 8MB in Views java.lang.StackOverflowError:堆栈大小8MB - java.lang.StackOverflowError: stack size 8MB java.lang.StackOverflowError:android studio上的堆栈大小为8MB。 怎么解决? - java.lang.StackOverflowError: stack size 8MB on android studio. How to solve it? 值动画制作器中的循环会导致java.lang.StackOverflowError崩溃:堆栈大小8MB - Loop in value animator cause in crash with java.lang.StackOverflowError: stack size 8MB 画画布时出现java.lang.StackOverflowError:堆栈大小8MB - I get java.lang.StackOverflowError: stack size 8MB when i draw my canvas 称为递归onResume活动java.lang.StackOverflowError的方法:堆栈大小8MB - Method called recursive onResume Activity java.lang.StackOverflowError: stack size 8MB StackOverflowError:Android 8.1 ProgressBar上的堆栈大小为8MB - StackOverflowError: stack size 8MB on Android 8.1 of ProgressBar
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM