Невозможно добавить данные в документ в firestore (Android) - PullRequest
0 голосов
/ 04 марта 2020

Я пытаюсь добавить данные в документ в Firebase Firestore. Я добавил коллекцию с именем users. Также права на чтение / запись открыты на данный момент. Я слежу за этим делом c. И я не могу добавить данные в документ.

Вот что я пытаюсь сделать:

private void getNewUserSnapShot() {
    FirebaseFirestore db = FirebaseFirestore.getInstance();
    FirebaseUser user = firebaseAuth.getCurrentUser();
    Log.d(TAG, "getNewUserSnapShot: user_uid: " + user.getUid());
    DocumentReference user_doc_ref = db.collection("users").document();

    Log.d(TAG, "getNewUserSnapShot: document ref: " + user_doc_ref.getId());

    Map<String, Object> user_data = new HashMap<>();
    user_data.put("name", user.getDisplayName());
    user_data.put("email", user.getEmail());
    user_data.put("profile_url", user.getPhotoUrl());

    Log.d(TAG, "getNewUserSnapShot: user_data: " + user_data.toString());

    user_doc_ref
            .set(user_data)
            .addOnCompleteListener(new OnCompleteListener<Void>() {
                @Override
                public void onComplete(@NonNull Task<Void> task) {
                    Toast.makeText(LoginActivity.this, task.toString(), Toast.LENGTH_LONG).show();
                    if (task.isSuccessful()) {
                        Log.d(TAG, "getNewUserSnapShot: success");
                    } else {
                        Log.d(TAG, "getNewUserSnapShot: failed");
                    }
                }
            });
}

В журналах я вижу только эти (ни журнал ошибок, ни для успеха):

2020-03-04 19:48:47.489 30744-30744/com.example.expenditure D/LoginActivity: getNewUserSnapShot: user_uid: iXOzfju6kORnhuUND8zFCPTzxY93
2020-03-04 19:48:47.499 30744-30744/com.example.expenditure D/LoginActivity: getNewUserSnapShot: document ref: 7AluPzcYMLzDKLh8YtBt
2020-03-04 19:48:47.499 30744-30744/com.example.expenditure D/LoginActivity: getNewUserSnapShot: user_data: {profile_url=https://someurl/security/reasons, name=Nikhil Wagh, email=null}

И когда я вижу консоль Firebase, я не могу найти документ с идентификатором 7AluPzcYMLzDKLh8YtBt, согласно журналам, которые должны были быть созданы.

Есть похожий вопрос: Невозможно добавить информацию в Cloud Firestore Но у него нет правильных ответов.

Может кто-то помочь. Что я делаю не так?

1 Ответ

0 голосов
/ 10 марта 2020

Ошибка была user.getPhotoUrl(), возвращается url, но Firestore не поддерживает URL. URL-адрес должен быть приведен в виде строки, и тогда он будет работать.

Приведите ваши URL-адреса к строке перед добавлением данных в Firestore.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...