Giter Site home page Giter Site logo

udacity / and-nd-firebase Goto Github PK

View Code? Open in Web Editor NEW
300.0 39.0 717.0 108 KB

Course code repository for Firebase in a Weekend by Google: Android

Home Page: https://www.udacity.com/course/firebase-in-a-weekend-by-google-android--ud0352

License: Apache License 2.0

Java 100.00%

and-nd-firebase's Introduction

FriendlyChat

This repository contains code for the FriendlyChat project in the Firebase in a Weekend: Android by Google Udacity course.

Overview

FriendlyChat is an app that allows users to send and receive text and photos in realtime across platforms.

Setup

Setup requires creating a Firebase project. See https://firebase.google.com/ for more information.

License

See LICENSE

and-nd-firebase's People

Contributors

sudkul avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

and-nd-firebase's Issues

UploadTask.TaskSnapshot doesn't have getDownloadUrl() method

I'm following a tutorial teaching how to upload images to Firebase. At certain moment the instructor will write the code to get the download URL after uploading by using getDownloadUrl() method from UploadTask.TaskSnapshot, but for me, this method doesn't exist.

enter image description here

Based on another code I found, I tried the following:

OnSuccessListener<UploadTask.TaskSnapshot> upload = new OnSuccessListener<UploadTask.TaskSnapshot>() {
    @Override
    public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
        ChatroomMessage message = new ChatroomMessage(null, mUsername, taskSnapshot.getDownloadUrl());
        mMessagesDatabaseReference.push().setValue(message);
    }
};

Because it is similar to what's shown in the documentation, but I didn't understand it very well. How to implement it?

Unable to build the project

Getting below error please help

Caused by: com.android.builder.internal.aapt.v2.Aapt2Exception: Android resource linking failed
E:\AndroidStudioProjects\udacity\and-nd-firebase\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:2096: error: resource android:attr/fontStyle not found.
E:\AndroidStudioProjects\udacity\and-nd-firebase\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:2097: error: resource android:attr/font not found.
E:\AndroidStudioProjects\udacity\and-nd-firebase\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:2098: error: resource android:attr/fontWeight not found.
E:\AndroidStudioProjects\udacity\and-nd-firebase\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:2099: error: resource android:attr/fontVariationSettings not found.
E:\AndroidStudioProjects\udacity\and-nd-firebase\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:2100: error: resource android:attr/ttcIndex not found.
error: failed linking references.

How to load Firebase storage images quicker in Obj-C?

So for some reason each users image in the table view takes about 10-15 seconds to load which is very long. Here is my code but bear with me there are a lot of for loops. Quick sum of all the loops, the first loop gets every single Username and photoURL pair in the firebase database then the other for loop gets all the users the logged in user if following. The two for loops are then compared and if the array with the username and photoURL contains a username in the array with all the users the logged in user is following, the end result with all the appropriate photoUrls are stored in an array. That array is looped into data and finally that data is looped into the cell.imageview. I know its a lot but it was the only solution I could find to my problem.

usersRef = [[FIRDatabase database] reference];
[[[[usersRef child:@"User"] queryOrderedByChild:@"ProfileURL"] queryStartingAtValue:@""] observeEventType:FIRDataEventTypeValue withBlock:^(FIRDataSnapshot *_Nonnull allUsersSnap){

    self->test0 = [NSMutableArray array];
    self->test1 = [NSMutableArray array];
    self->test2 = [NSMutableArray array];
    self->test3 = [NSMutableArray array];
    self->test4 = [NSMutableArray array];
    //NSData *data;
    NSString *str;
    NSString *str1;
    NSString *str2;
    NSString *str3;
    NSString *str4;
    NSString *str5;

    for (FIRDataSnapshot *child in allUsersSnap.children){

        str = [NSString stringWithFormat:@"%@ %@", child.value[@"ProfileURL"], child.value[@"Username"]];
        [test0 addObject:str];

        str3 = [NSString stringWithFormat:@"%@", child.value[@"ProfileURL"]];
        [test2 addObject:str3];

    }



    for (int i=0;i<currentUserArray.count;i++){
        str1 = [NSString stringWithFormat:@"%@", currentUserArray[i]];

        for (int i=0;i<test0.count;i++){
            str2 = [NSString stringWithFormat:@"%@", test0[i]];

            if ([str2 containsString:str1]){
                [test1 addObject:str2];
            }


        }

    }




    for (int i=0;i<test1.count;i++){
        str3 = [NSString stringWithFormat:@"%@", test1[i]];

        for (int i=0;i<test2.count;i++){
            str4 = [NSString stringWithFormat:@"%@", test2[i]];
            if ([str3 containsString:str4]){
                [test3 addObject:str4];
            }
        }
    }







    for (int i=0;i<test3.count;i++){

        NSData *data = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:test3[i]]];

        [test4 addObject:data];
    }

    NSLog(@"hoya1 %@", test0);
    NSLog(@"hoya2 %@", test1);
    NSLog(@"hoya3 %@", currentUserArray);



    cell.followingImage.image = [UIImage imageWithData:[test4 objectAtIndex:indexPath.row]];
}];
}

AUTH error new

       List<AuthUI.IdpConfig> providers = Arrays.asList(
        new AuthUI.IdpConfig.EmailBuilder().build(),
        new AuthUI.IdpConfig.GoogleBuilder().build());


                //user is signed out
                startActivityForResult(
                        AuthUI.getInstance()
                                .createSignInIntentBuilder()
                                .setIsSmartLockEnabled(false)
                                .setAvailableProviders(providers)
                                .build(),
                        RC_SIGN_IN);

getDownloadUrl not working and no idea how to solve it

`public class Upload_Images_Activity extends AppCompatActivity {

private static final int PICK_IMAGE_REQUEST=1;

private Button mButtonChooseImage;
private Button mButtonUpload;
private TextView mTextViewShowUploads;
private EditText mEditTextFileName;
private ImageView mImageView;
private ProgressBar mProgressbar;
private String MyUID, photoStringLink;
private TextView tvImageUri;
private Uri mImageUri;

private StorageReference mStorageRef;
private DatabaseReference mDatabaseRef;

private StorageTask mUploadTask;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_upload_images);

    mButtonChooseImage = findViewById(R.id.btnChooseImage);
    mButtonUpload = findViewById(R.id.btnUploadImage);
   // mTextViewShowUploads = findViewById(R.id.tvShowUploads);
    mEditTextFileName = findViewById(R.id.etImageName);
    mImageView = findViewById(R.id.ivUploadedImage);
    mProgressbar = findViewById(R.id.pbUploadingImage);
    FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
    MyUID = user.getUid();
    mStorageRef = FirebaseStorage.getInstance().getReference(MyUID).child("General_Image_Posts");
    mDatabaseRef = FirebaseDatabase.getInstance().getReference("General_Image_Posts").child(MyUID);
    mButtonChooseImage.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            openFileChooser();
        }
    });

    mButtonUpload.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if (mUploadTask != null && mUploadTask.isInProgress()){
                Toast.makeText(Upload_Images_Activity.this, "Upload in progress", Toast.LENGTH_SHORT).show();
            }else
            uploadFile();
        }
    });

  /*  mTextViewShowUploads.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            openImagesActivity();
        }
    });*/



}

private void openFileChooser() {
    Intent intent = new Intent();
    intent.setType("image/*");
    intent.setAction(Intent.ACTION_GET_CONTENT);
    startActivityForResult(intent, PICK_IMAGE_REQUEST);
}

@OverRide
protected void onActivityResult(int requestCode, int resultCode, @nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null &&data.getData() != null) {
        mImageUri = data.getData();
        Picasso.get().load(mImageUri).fit().centerCrop().into(mImageView);
    }
}


private String getFileExtension(Uri uri) { //om extension van bestand te krijgen
    ContentResolver cR = getContentResolver();
    MimeTypeMap mime = MimeTypeMap.getSingleton();
    return mime.getExtensionFromMimeType(cR.getType(uri));
}

private void uploadFile() {
    if (mImageUri != null) {
        StorageReference fileReference = mStorageRef.child(System.currentTimeMillis()+ "." + getFileExtension(mImageUri));
        mUploadTask = fileReference.putFile(mImageUri)
                .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                    @Override
                    public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                        Handler handler = new Handler();
                        handler.postDelayed(new Runnable() {
                            @Override
                            public void run() {
                                mProgressbar.setProgress(0);
                            }
                        },500);
                        mImageView.setImageResource(0);
                        mImageUri = null;


                        Toast.makeText(Upload_Images_Activity.this, "Upload succesful", Toast.LENGTH_SHORT).show();
                        Upload upload = new Upload(mEditTextFileName.getText().toString().trim(),
                                taskSnapshot.**getDownloadUrl()**.toString());
                        String uploadId = mDatabaseRef.push().getKey();
                        mDatabaseRef.child(uploadId).setValue(upload);
                        mEditTextFileName.getText().clear();
                    }
                })
                .addOnFailureListener(new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception e) {
                        Toast.makeText(Upload_Images_Activity.this, e.getMessage(), Toast.LENGTH_SHORT).show();
                    }
                })
                .addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
                    @Override
                    public void onProgress(@NonNull UploadTask.TaskSnapshot taskSnapshot) {
                        double progress = (100.0* taskSnapshot.getBytesTransferred() / taskSnapshot.getTotalByteCount());
                        mProgressbar.setProgress((int) progress);
                    }
                });}
    else {
        Toast.makeText(this, "No file selected", Toast.LENGTH_LONG).show();
    }
}

}
`

getDownloadUrl

here is my code i have tried different code from stackoverflow nothing works for me.cant seem to fix the error Uri firebaseUrl = taskSnapshot.getDownloadUrl();

uploadTask.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@OverRide
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
Uri firebaseUrl = taskSnapshot.getDownloadUrl();

                Toast.makeText(mContext, "photo upload success", Toast.LENGTH_SHORT).show();

                //insert into 'user_account_settings' node
                setProfilePhoto(firebaseUrl.toString());

Error in Cloud Functions database Cannot read property 'val' of undefined

Firebase SDK for Cloud Functions Migration Guide: Beta to version 1.0

In the code provided we need to remove the variable (event) and replace it with (change,context): this is the snippet of my working code:

exports.emojify =
    functions.database.ref('/messages/{pushId}/text')
    .onWrite((change,context) => {
        console.log("emojifying!");
        // Get the value from the 'text' key of the message
        const originalText = change.after.val();
        const emojifiedText = emojifyText(originalText);

        // Return a JavaScript Promise to update the database node
        return change.after.ref.set(emojifiedText);
    });

Reference from this StackOverflow post:
https://stackoverflow.com/questions/49746905/firebase-typeerror-cannot-read-property-val-of-undefined?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa

Uri downloadUrl = taskSnapshot.getDownloadUrl(); not working

getDownloadUrl() does not seem to exist anymore. Looking at the firebase-documentation it looks like this method is called on the reference now not taskSnapShot. I have tried the following but the image is not uploaded:

StorageReference taskSnapshotStorage = taskSnapshot.getStorage();
                       Uri downloadUrl = taskSnapshotStorage.getDownloadUrl().getResult();

Error

at line 202 Uri downloadUrl = taskSnapshot.getDownloadUrl();

showing error: this method should only be accessed from tests or within private scope.

error

Messages are not displaying.

After using this code, no any messages are visible.

here is my MainActivity.java code

/**

  • Copyright Google Inc. All Rights Reserved.
  • Licensed under the Apache License, Version 2.0 (the "License");
  • you may not use this file except in compliance with the License.
  • You may obtain a copy of the License at
  • http://www.apache.org/licenses/LICENSE-2.0
  • Unless required by applicable law or agreed to in writing, software
  • distributed under the License is distributed on an "AS IS" BASIS,
  • WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  • See the License for the specific language governing permissions and
  • limitations under the License.
    */
    package com.google.firebase.udacity.friendlychat;

import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.text.Editable;
import android.text.InputFilter;
import android.text.TextWatcher;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.Toast;

import com.firebase.ui.auth.AuthUI;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.database.ChildEventListener;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

private static final String TAG = "MainActivity";

public static final String ANONYMOUS = "anonymous";
public static final int DEFAULT_MSG_LENGTH_LIMIT = 1000;
public static final int RC_SIGN_IN = 1;

private ListView mMessageListView;
private MessageAdapter mMessageAdapter;
private ProgressBar mProgressBar;
private ImageButton mPhotoPickerButton;
private EditText mMessageEditText;
private Button mSendButton;

private FirebaseDatabase mFirebaseDatabase;
private DatabaseReference mMessagesDatabaseReference;
private ChildEventListener mChildEventListener;
private FirebaseAuth mFirebaseAuth;
private FirebaseAuth.AuthStateListener mAuthStateListener;
private String mUsername;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mUsername = ANONYMOUS;

    //Initialising FirebaseDatabase instance
    mFirebaseDatabase = FirebaseDatabase.getInstance();
    //Initialising FirebaseAuth instance
    mFirebaseAuth = FirebaseAuth.getInstance();
    mMessagesDatabaseReference = mFirebaseDatabase.getReference().child("message");

    // Initialize references to views
    mProgressBar = (ProgressBar) findViewById(R.id.progressBar);
    mMessageListView = (ListView) findViewById(R.id.messageListView);
    mPhotoPickerButton = (ImageButton) findViewById(R.id.photoPickerButton);
    mMessageEditText = (EditText) findViewById(R.id.messageEditText);
    mSendButton = (Button) findViewById(R.id.sendButton);

    // Initialize message ListView and its adapter
    List<FriendlyMessage> friendlyMessages = new ArrayList<>();
    mMessageAdapter = new MessageAdapter(this, R.layout.item_message, friendlyMessages);
    mMessageListView.setAdapter(mMessageAdapter);

    // Initialize progress bar
    mProgressBar.setVisibility(ProgressBar.INVISIBLE);

    // ImagePickerButton shows an image picker to upload a image for a message
    mPhotoPickerButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            // TODO: Fire an intent to show an image picker
        }
    });

    // Enable Send button when there's text to send
    mMessageEditText.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
        }

        @Override
        public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
            if (charSequence.toString().trim().length() > 0) {
                mSendButton.setEnabled(true);
            } else {
                mSendButton.setEnabled(false);
            }
        }

        @Override
        public void afterTextChanged(Editable editable) {
        }
    });
    mMessageEditText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(DEFAULT_MSG_LENGTH_LIMIT)});

    // Send button sends a message and clears the EditText
    mSendButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            // Send messages on click

            FriendlyMessage friendlyMessage = new FriendlyMessage(mMessageEditText.getText().toString(), mUsername, null);
            mMessagesDatabaseReference.push().setValue(friendlyMessage);
            // Clear input box
            mMessageEditText.setText("");
        }
    });

    mAuthStateListener = new FirebaseAuth.AuthStateListener() {
        @Override
        public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
            FirebaseUser user = firebaseAuth.getCurrentUser();
            if (user != null) {
                onSignedInInitialize(user.getDisplayName());
            }else {
                onSignedOutCleanup();
                startActivityForResult(
                        AuthUI.getInstance()
                                .createSignInIntentBuilder()
                                .setIsSmartLockEnabled(false)
                                .setProviders(
                                        AuthUI.EMAIL_PROVIDER,
                                        AuthUI.GOOGLE_PROVIDER)
                                .build(),
                        RC_SIGN_IN);
            }
        }
    };
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    //super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == RC_SIGN_IN){
        if (resultCode == RESULT_OK){
            Toast.makeText(MainActivity.this,"Good To go",Toast.LENGTH_SHORT).show();
        }
        else {
            Toast.makeText(MainActivity.this,"Login Error",Toast.LENGTH_SHORT).show();
            finish();
        }
    }
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.main_menu, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    return super.onOptionsItemSelected(item);
}

@Override
protected void onResume() {
    super.onResume();
    mFirebaseAuth.addAuthStateListener(mAuthStateListener);
}

@Override
protected void onPause() {
    super.onPause();
    if (mAuthStateListener != null) {
        mFirebaseAuth.removeAuthStateListener(mAuthStateListener);
    }
    mMessageAdapter.clear();
    detachDatabaseReadListener();
}

private void onSignedInInitialize(String username){
    mUsername = username;
    attachDatabaseReadListener();
}
private void onSignedOutCleanup(){
    mUsername = ANONYMOUS;
    mMessageAdapter.clear();
    detachDatabaseReadListener();
}
private void attachDatabaseReadListener(){
    if (mChildEventListener == null) {
        mChildEventListener = new ChildEventListener() {
            @Override
            public void onChildAdded(DataSnapshot dataSnapshot, String s) {
                FriendlyMessage friendlyMessage = dataSnapshot.getValue(FriendlyMessage.class);
                mMessageAdapter.add(friendlyMessage);
            }

            @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) {
            }
        };
        mMessagesDatabaseReference.addChildEventListener(mChildEventListener);
    }
}
private void detachDatabaseReadListener(){
    if (mChildEventListener != null) {
        mMessagesDatabaseReference.removeEventListener(mChildEventListener);
        mChildEventListener = null;
    }
}

}

Failed to resolve: firebase-database-15.0.0

I have searched multiple sites for this error but I'm end up getting solutions like, remove ":15.0.0" or change java to kotlin than use kapt etc, I need a better solution to my problem.

I cannot remove ":15.0.0" as this a dependency give to me
implementation 'com.google.firebase:firebase-database:16.0.1:15.0.0'

I have highlighted the things that need to be concerned.

image

application crash

I am using Android Studio 2.2.3 - after adding FirebaseUI Auth dependencies. i m getting following error

// FirebaseUI Auth only
compile 'com.google.firebase:firebase-auth:10.0.1'
compile 'com.firebaseui:firebase-ui-auth:1.1.1'

// Error Log

02-14 13:39:26.331 25149-25172/com.google.firebase.udacity.friendlychat W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found.
02-14 13:39:26.354 25149-25149/com.google.firebase.udacity.friendlychat A/FirebaseApp: Firebase API initialization failure.
                                                                                       java.lang.reflect.InvocationTargetException
                                                                                           at java.lang.reflect.Method.invoke(Native Method)
                                                                                           at java.lang.reflect.Method.invoke(Method.java:372)
                                                                                           at com.google.firebase.FirebaseApp.zza(Unknown Source)
                                                                                           at com.google.firebase.FirebaseApp.initializeApp(Unknown Source)
                                                                                           at com.google.firebase.FirebaseApp.initializeApp(Unknown Source)
                                                                                           at com.google.firebase.FirebaseApp.initializeApp(Unknown Source)
                                                                                           at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source)
                                                                                           at android.content.ContentProvider.attachInfo(ContentProvider.java:1696)
                                                                                           at android.content.ContentProvider.attachInfo(ContentProvider.java:1671)
                                                                                           at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source)
                                                                                           at android.app.ActivityThread.installProvider(ActivityThread.java:5084)
                                                                                           at android.app.ActivityThread.installContentProviders(ActivityThread.java:4679)
                                                                                           at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4619)
                                                                                           at android.app.ActivityThread.access$1500(ActivityThread.java:155)
                                                                                           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1378)
                                                                                           at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                           at android.os.Looper.loop(Looper.java:135)
                                                                                           at android.app.ActivityThread.main(ActivityThread.java:5343)
                                                                                           at java.lang.reflect.Method.invoke(Native Method)
                                                                                           at java.lang.reflect.Method.invoke(Method.java:372)
                                                                                           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905)
                                                                                           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:700)
                                                                                        Caused by: java.lang.IllegalAccessError: Method 'void android.support.v4.content.ContextCompat.<init>()' is inaccessible to class 'com.google.firebase.iid.zzg' (declaration of 'com.google.firebase.iid.zzg' appears in /data/data/com.google.firebase.udacity.friendlychat/files/instant-run/dex/slice-com.google.firebase-firebase-iid-9.0.0_1c9f905059174e9b00c5bfb64f0eaaa6fcac8f15-classes.dex)
                                                                                           at com.google.firebase.iid.zzg.zzeC(Unknown Source)
                                                                                           at com.google.firebase.iid.zzg.<init>(Unknown Source)
                                                                                           at com.google.firebase.iid.zzg.<init>(Unknown Source)
                                                                                           at com.google.firebase.iid.zzd.zzb(Unknown Source)
                                                                                           at com.google.firebase.iid.FirebaseInstanceId.getInstance(Unknown Source)
                                                                                           at java.lang.reflect.Method.invoke(Native Method) 
                                                                                           at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                                           at com.google.firebase.FirebaseApp.zza(Unknown Source) 
                                                                                           at com.google.firebase.FirebaseApp.initializeApp(Unknown Source) 
                                                                                           at com.google.firebase.FirebaseApp.initializeApp(Unknown Source) 
                                                                                           at com.google.firebase.FirebaseApp.initializeApp(Unknown Source) 
                                                                                           at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source) 
                                                                                           at android.content.ContentProvider.attachInfo(ContentProvider.java:1696) 
                                                                                           at android.content.ContentProvider.attachInfo(ContentProvider.java:1671) 
                                                                                           at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source) 
                                                                                           at android.app.ActivityThread.installProvider(ActivityThread.java:5084) 
                                                                                           at android.app.ActivityThread.installContentProviders(ActivityThread.java:4679) 
                                                                                           at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4619) 
                                                                                           at android.app.ActivityThread.access$1500(ActivityThread.java:155) 
                                                                                           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1378) 
                                                                                           at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                                           at android.os.Looper.loop(Looper.java:135) 
                                                                                           at android.app.ActivityThread.main(ActivityThread.java:5343) 
                                                                                           at java.lang.reflect.Method.invoke(Native Method) 
                                                                                           at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                                           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905) 
                                                                                           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:700) 
02-14 13:39:26.359 25149-25172/com.google.firebase.udacity.friendlychat W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found.
02-14 13:39:26.371 25149-25172/com.google.firebase.udacity.friendlychat W/ResourcesManager: Asset path '/system/framework/com.android.media.remotedisplay.jar' does not exist or contains no resources.
02-14 13:39:26.372 25149-25172/com.google.firebase.udacity.friendlychat W/ResourcesManager: Asset path '/system/framework/com.android.location.provider.jar' does not exist or contains no resources.
02-14 13:39:26.618 25149-25149/com.google.firebase.udacity.friendlychat A/FirebaseApp: Firebase API initialization failure.
                                                                                       java.lang.reflect.InvocationTargetException
                                                                                           at java.lang.reflect.Method.invoke(Native Method)
                                                                                           at java.lang.reflect.Method.invoke(Method.java:372)
                                                                                           at com.google.firebase.FirebaseApp.zza(Unknown Source)
                                                                                           at com.google.firebase.FirebaseApp.initializeApp(Unknown Source)
                                                                                           at com.google.firebase.FirebaseApp.initializeApp(Unknown Source)
                                                                                           at com.google.firebase.FirebaseApp.initializeApp(Unknown Source)
                                                                                           at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source)
                                                                                           at android.content.ContentProvider.attachInfo(ContentProvider.java:1696)
                                                                                           at android.content.ContentProvider.attachInfo(ContentProvider.java:1671)
                                                                                           at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source)
                                                                                           at android.app.ActivityThread.installProvider(ActivityThread.java:5084)
                                                                                           at android.app.ActivityThread.installContentProviders(ActivityThread.java:4679)
                                                                                           at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4619)
                                                                                           at android.app.ActivityThread.access$1500(ActivityThread.java:155)
                                                                                           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1378)
                                                                                           at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                           at android.os.Looper.loop(Looper.java:135)
                                                                                           at android.app.ActivityThread.main(ActivityThread.java:5343)
                                                                                           at java.lang.reflect.Method.invoke(Native Method)
                                                                                           at java.lang.reflect.Method.invoke(Method.java:372)
                                                                                           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905)
                                                                                           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:700)
                                                                                        Caused by: java.lang.NoSuchMethodError: No static method zzz(Ljava/lang/Object;)Ljava/lang/Object; in class Lcom/google/android/gms/common/internal/zzaa; or its super classes (declaration of 'com.google.android.gms.common.internal.zzaa' appears in /data/data/com.google.firebase.udacity.friendlychat/files/instant-run/dex/slice-com.google.android.gms-play-services-basement-10.0.1_5d0a0978ccd15d1602f8bf76ef3dda5116b6fe1a-classes.dex)
                                                                                           at com.google.android.gms.measurement.internal.zzx.zzbd(Unknown Source)
                                                                                           at com.google.android.gms.measurement.AppMeasurement.getInstance(Unknown Source)
                                                                                           at java.lang.reflect.Method.invoke(Native Method) 
                                                                                           at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                                           at com.google.firebase.FirebaseApp.zza(Unknown Source) 
                                                                                           at com.google.firebase.FirebaseApp.initializeApp(Unknown Source) 
                                                                                           at com.google.firebase.FirebaseApp.initializeApp(Unknown Source) 
                                                                                           at com.google.firebase.FirebaseApp.initializeApp(Unknown Source) 
                                                                                           at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source) 
                                                                                           at android.content.ContentProvider.attachInfo(ContentProvider.java:1696) 
                                                                                           at android.content.ContentProvider.attachInfo(ContentProvider.java:1671) 
                                                                                           at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source) 
                                                                                           at android.app.ActivityThread.installProvider(ActivityThread.java:5084) 
                                                                                           at android.app.ActivityThread.installContentProviders(ActivityThread.java:4679) 
                                                                                           at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4619) 
                                                                                           at android.app.ActivityThread.access$1500(ActivityThread.java:155) 
                                                                                           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1378) 
                                                                                           at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                                           at android.os.Looper.loop(Looper.java:135) 
                                                                                           at android.app.ActivityThread.main(ActivityThread.java:5343) 
                                                                                           at java.lang.reflect.Method.invoke(Native Method) 
                                                                                           at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                                           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905) 
                                                                                           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:700) 
02-14 13:39:26.920 25149-25149/com.google.firebase.udacity.friendlychat W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
02-14 13:39:27.916 25149-25149/com.google.firebase.udacity.friendlychat E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                          Process: com.google.firebase.udacity.friendlychat, PID: 25149
                                                                                          java.lang.IllegalArgumentException: Each provider can only be set once. password was set twice.
                                                                                              at com.firebase.ui.auth.AuthUI$SignInIntentBuilder.setProviders(AuthUI.java:572)
                                                                                              at com.google.firebase.udacity.friendlychat.MainActivity$5.onAuthStateChanged(MainActivity.java:187)
                                                                                              at com.google.firebase.auth.FirebaseAuth$1.run(Unknown Source)
                                                                                              at android.os.Handler.handleCallback(Handler.java:739)
                                                                                              at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                                              at android.os.Looper.loop(Looper.java:135)
                                                                                              at android.app.ActivityThread.main(ActivityThread.java:5343)
                                                                                              at java.lang.reflect.Method.invoke(Native Method)
                                                                                              at java.lang.reflect.Method.invoke(Method.java:372)
                                                                                              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905)
                                                                                              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:700)
02-14 13:39:37.605 25149-25172/com.google.firebase.udacity.friendlychat W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found.

As per ref link i had updated code for "setProviders". but with the latest code my application get crashed with above error.

can someone please help me to solve this issue OR tell me what i am doing wrong?

Issue with setProviders() method in startActivityForResult in MainActivity

Trying to run the app I came across the following problem: The setProviders method cannot be resolved. Instead of the code provided in the example code
setProviders( AuthUI.EMAIL_PROVIDER, AuthUI.GOOGLE_PROVIDER)

we should declare the Providers for email and Google as follows:
setAvailableProviders( Arrays.asList(new AuthUI.IdpConfig.EmailBuilder().build(), new AuthUI.IdpConfig.GoogleBuilder().build()))

getCurrentUser

From.getCurrentUser(); in this part it doesn't t return any CurrentUser it give me the redline method how can i fix this ???

public void onAuthStateChanged(@nonnull FirebaseAuth firebaseAuth) {
FirebaseUser user= FirebaseAuth_.getCurrentUser();_
if(user!=null){
//user is signed in
Toast.makeText(MainActivity.this,"welcome to app",Toast.LENGTH_LONG).show();
}

Unable to build the project

ERROR: Failed to resolve: com.android.support:design:24.2.0
Add Google Maven repository and sync project
Show in Project Structure dialog
Affected Modules: app

ERROR: Failed to resolve: com.android.support:appcompat-v7:24.2.0
Add Google Maven repository and sync project
Show in Project Structure dialog
Affected Modules: app

How to get downloadUrls for Multiple files in firebase android?

storageReference = mRef.child("Images").child(mAuth.getCurrentUser().getUid()).child(image_name);
UploadTask uploadTask = storageReference.putBytes(data);
uploadTask.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task>() {
@OverRide
public Task then(@nonnull Task<UploadTask.TaskSnapshot> task) throws Exception {
return storageReference.getDownloadUrl();
}
}).addOnCompleteListener(new OnCompleteListener() {
@OverRide
public void onComplete(@nonnull Task task) {
if (task.isSuccessful()) {
Uri downloadUri = task.getResult();
//It will return the downloadUrl;
//If i tried to store them in the list
storeImageUrls.add(downloadUri.toString()); // storeImageUrls is a list

                                }
                            }

}

//If i upload different images to the storage then different images get uploaded but getting only 1 url and it get stored in the list.
So, if i upload 10 images, the images get uploaded but getting only 1 url stored like 10 images but same url for 10 images stored in the list.

cannot resolve getDownloadUrl please help me out here is the code

public void createOrUpdateProfileWithImage(final Profile profile, Uri imageUri, final OnProfileCreatedListener onProfileCreatedListener) {
String imageTitle = ImageUtil.generateImageTitle(UploadImagePrefix.PROFILE, profile.getId());
UploadTask uploadTask = databaseHelper.uploadImage(imageUri, imageTitle);

    if (uploadTask != null) {
        uploadTask.addOnCompleteListener(task -> {
            if (task.isSuccessful()) {


                Uri downloadUrl = task.getResult().getDownloadUrl();  //problem here
                LogUtil.logDebug(TAG, "successful upload image, image url: " + String.valueOf(downloadUrl));

                profile.setPhotoUrl(downloadUrl.toString());
                createOrUpdateProfile(profile, onProfileCreatedListener);

            } else {
                onProfileCreatedListener.onProfileCreated(false);
                LogUtil.logDebug(TAG, "fail to upload image");
            }

        });

How to go to the previous Main activity from Gallery Intent

When I press back button on the Gallery Intent, It exits the app. How do I go to the previous chat screen when pressed back button ? What should be done to this logic ?

 // ImagePickerButton shows an image picker to upload a image for a message
        mPhotoPickerButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
                intent.setType("image/jpeg");
                intent.putExtra(Intent.EXTRA_LOCAL_ONLY, true);
                startActivityForResult(Intent.createChooser(intent, "Complete action using"), RC_PHOTO_PICKER);
            }
        });

Uri url = taskSnapshot.getDownloadUrl();

estou com problema meu codigo whastapp clone esta dando erro Uri url = taskSnapshot.getDownloadUrl(); salva foto banco faribase nao fixa foto perfil whastapp clone

package br.com.whatsappandroid.android.whatsapp.activity;

import android.Manifest;

import android.content.DialogInterface;

import android.content.Intent;

import android.content.pm.PackageManager;

import android.graphics.Bitmap;

import android.net.Uri;

import android.os.Bundle;

import android.provider.MediaStore;

import android.support.annotation.NonNull;

import android.support.v7.app.AlertDialog;

import android.support.v7.app.AppCompatActivity;

import android.support.v7.widget.Toolbar;

import android.view.View;

import android.widget.ImageButton;

import android.widget.Toast;

import com.bumptech.glide.Glide;

import com.google.android.gms.tasks.OnFailureListener;

import com.google.android.gms.tasks.OnSuccessListener;

import com.google.firebase.auth.FirebaseUser;

import com.google.firebase.storage.StorageReference;

import com.google.firebase.storage.UploadTask;

import java.io.ByteArrayOutputStream;

import br.com.whatsappandroid.android.whatsapp.R;

import br.com.whatsappandroid.android.whatsapp.config.ConfiguracaoFirebase;

import br.com.whatsappandroid.android.whatsapp.helper.UsuarioFirebase;

import br.com.whatsappandroid.android.whatsapp.helper.permissao;

import de.hdodenhof.circleimageview.CircleImageView;

public class ConfiguracoesActivity extends AppCompatActivity {

private String[] permissoesNecessarias = new String[]{

        Manifest.permission.READ_EXTERNAL_STORAGE,

        Manifest.permission.CAMERA

};

private ImageButton imageButtonCamera, imageButtonGaleria;

private static final int SELECAO_CAMERA  = 100;

private static final int SELECAO_GALERIA = 200;

private CircleImageView circleImageViewPerfil;

private StorageReference StorageReference;

private  String identificadorUsuario;



@Override

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_configuracoes);



    //Configuraçoes iniciais

    StorageReference = ConfiguracaoFirebase.getFirebasesStorage();

    identificadorUsuario = UsuarioFirebase.getIdentificadorUsuario();





    //Validar permissões

    permissao.validarPermissoes(permissoesNecessarias, this, 1);



    imageButtonCamera  = findViewById(R.id.imageButtonCamara);

    imageButtonGaleria = findViewById(R.id.imageButtonGaleria);

    circleImageViewPerfil = findViewById(R.id.CircleImageViewFotoPerfil);





    Toolbar toolbar = findViewById(R.id.toolbarPrincipal);

    toolbar.setTitle("Configurações");

    setSupportActionBar( toolbar );



    getSupportActionBar().setDisplayHomeAsUpEnabled(true);



    //Recuperar dados do Usuário

    FirebaseUser usuario = UsuarioFirebase.getUsuarioAtual();

    Uri url =  usuario.getPhotoUrl();





    if ( url != null ) {

        Glide.with(ConfiguracoesActivity.this)

                .load( url)

                .into(circleImageViewPerfil);



    }else {

        circleImageViewPerfil.setImageResource(R.drawable.padrao);

    }









    imageButtonCamera.setOnClickListener(new View.OnClickListener() {

        @Override

        public void onClick(View v) {



            Intent i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

            if ( i.resolveActivity(getPackageManager()) != null ){

                startActivityForResult(i, SELECAO_CAMERA );

            }





        }

    });



    imageButtonGaleria.setOnClickListener(new View.OnClickListener() {

        @Override

        public void onClick(View v) {



            Intent i = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI );

            if ( i.resolveActivity(getPackageManager()) != null ){

                startActivityForResult(i, SELECAO_GALERIA );

            }

        }

    });





}



@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    super.onActivityResult(requestCode, resultCode, data);



    if ( resultCode == RESULT_OK ){

        Bitmap imagem = null;



        try {



            switch ( requestCode ){

                case SELECAO_CAMERA:

                    imagem = (Bitmap) data.getExtras().get("data");

                    break;

                case SELECAO_GALERIA:

                    Uri localImagemSelecionada = data.getData();

                    imagem = MediaStore.Images.Media.getBitmap(getContentResolver(), localImagemSelecionada );

                    break;

            }



            if ( imagem != null ) {



                circleImageViewPerfil.setImageBitmap(imagem);



                //Recuperar dados da imagem para o Firebase

                ByteArrayOutputStream baos = new ByteArrayOutputStream();

                imagem.compress(Bitmap.CompressFormat.JPEG, 70,baos );

                byte[] dadosImagem = baos.toByteArray();



                //salvar imagem firebase

                StorageReference imagemRef = StorageReference

                        .child("imagens")

                        .child("perfil")

                        //.child( identificadorUsuario )

                        .child( identificadorUsuario + ".jpeg");



                UploadTask uploadTask = imagemRef.putBytes( dadosImagem );

                uploadTask.addOnFailureListener(new OnFailureListener() {

                    @Override

                    public void onFailure(@NonNull Exception e) {

                        Toast.makeText(ConfiguracoesActivity.this,

                                "Erro ao fazer upload da imagem",

                                Toast.LENGTH_SHORT).show();





                    }

                }).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {

                    @Override

                    public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {

                        Toast.makeText(ConfiguracoesActivity.this,

                                "Sucesso ao fazer upload da imagem",

                                Toast.LENGTH_SHORT).show();



                       Uri url = taskSnapshot.getDownloadUrl();

                        atualizaFotoUsuario(url);





                    }

                });



            }



        }catch (Exception e){

            e.printStackTrace();

        }



    }



}



public void atualizaFotoUsuario(Uri url){

    UsuarioFirebase.atualizarFotoUsuario(url);

}



@Override

public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {

    super.onRequestPermissionsResult(requestCode, permissions, grantResults);



    for ( int permissaoResultado : grantResults ){

        if ( permissaoResultado == PackageManager.PERMISSION_DENIED ){

            alertaValidacaoPermissao();

        }

    }



}



private void alertaValidacaoPermissao(){



    AlertDialog.Builder builder = new AlertDialog.Builder( this );

    builder.setTitle("Permissões Negadas");

    builder.setMessage("Para utilizar o app é necessário aceitar as permissões");

    builder.setCancelable(false);

    builder.setPositiveButton("Confirmar", new DialogInterface.OnClickListener() {

        @Override

        public void onClick(DialogInterface dialog, int which) {

            finish();

        }

    });



    AlertDialog dialog = builder.create();

    dialog.show();



}

}

getDownloadUrl Error

StorageReference filepath=mStorage.child("T_image").child(mImageUri.getLastPathSegment());
filepath.putFile(mImageUri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@OverRide
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
Toast.makeText(upload_teach_info.this, "success", Toast.LENGTH_SHORT).show();
DatabaseReference new_add=mDatabase.push();
new_add.child("Name").setValue(mName);
new_add.child("Email").setValue(mEmail);
new_add.child("Desciption").setValue(mDesc);
new_add.child("Image").setValue(downloadUri.toString());
}
})
.addOnFailureListener(new OnFailureListener() {
@OverRide
public void onFailure(@nonnull Exception e) {
Toast.makeText(upload_teach_info.this, "failed!", Toast.LENGTH_SHORT).show();
}
});

    }
}

error: cannot find symbol variable menu

This was the error while I'm trying to run my app. It is showing me error here.
error: cannot find symbol variable menu

Can you please help me in solving this. I'm unable to figure out.

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.main_menu, menu);
        return true;
    }

When I performed gradlew build --stacktrace, This was the Stack trace i got.

:app:compileDebugJavaWithJavac - is not incremental (e.g. outputs have changed, no previous execution, etc.).
D:\FirebaseApps\WeCare\app\src\main\java\com\pc\wecare\MainActivity.java:120: error: cannot find symbol
        inflater.inflate(R.menu.main_menu, menu);
                          ^
  symbol:   variable menu
  location: class R
1 error
:app:compileDebugJavaWithJavac FAILED

Unable to build this project

First i upgraded my gradle build tools to 3.4.2 then i upgraded my compile sdk to 28 and i'm still getting errors,
Currently i'm getting:
Manifest merger failed : Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91
is also present at [androidx.core:core:1.0.0] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory).
Suggestion: add 'tools:replace="android:appComponentFactory"' to element at AndroidManifest.xml:5:5-19:19 to override.

Can someone who has gotten this to work just paste their app gradle file here for me to use. I just cant seem to get this to work.

Not able to store the image in Firebase

This is my code.

 mPhotoPickerButton.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View view) {
               Intent i = new Intent(Intent.ACTION_GET_CONTENT);
               i.setType("image/*");
               i.putExtra(Intent.EXTRA_LOCAL_ONLY, true);
               startActivityForResult(Intent.createChooser(i, "Complete action using"), RC_PHOTO_PICKER);
           }
       });

This is my onAcitivity Method:

@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == RC_SIGN_IN) {
            if (resultCode == RESULT_OK) {
                Toast.makeText(MainActivity.this, "Welcome to BCM!", Toast.LENGTH_SHORT).show();
            } else if (resultCode == RESULT_CANCELED) {
                Toast.makeText(this, "Sign in cancelled", Toast.LENGTH_SHORT).show();
                finish();
            } else if (requestCode == RC_PHOTO_PICKER && resultCode == RESULT_OK) {

                Uri selectedImageUri = data.getData();

                // Get a reference to store file at photos/<FILENAME>
                StorageReference photoRef = mPhotosStorageReference.child(selectedImageUri.getLastPathSegment());

                //Upload file to Firebase Storage
                photoRef.putFile(selectedImageUri)
                        .addOnSuccessListener(this, new OnSuccessListener<UploadTask.TaskSnapshot>() {
                            @Override
                            public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {

                                // When the image has successfully uploaded, we get its download URL
                                @SuppressWarnings("VisibleForTests")
                                Uri downloadUrl = taskSnapshot.getDownloadUrl();

                                // Set the download URL to the message box, so that the user can send it to the database
                                Message message = new Message(null, userName, downloadUrl.toString());
                                messagesDatabaseReference.push().setValue(message);
                            }
                        });
            }
        }
    }

Please review my code and tell me where I'm going wrong.

I'm running this app on my mobile Device ( Android Nougat - Moto G4) through USB.

Error:(41, 13) error: cannot find symbol variable Glide

My Android Studio is up to date. Further, I have updated repository as suggested and resynced. but receiving the following error in MessageAdapter.java

Error:(41, 13) error: cannot find symbol variable Glide
Error:(12, 26) error: package com.bumptech.glide does not exist

and also receiving Error:(105, 27) error: cannot find symbol variable menu
in MainActivity.java inflater.inflate(R.menu.main_menu, menu);

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.