Как получить идентификатор документа из Firestore и использовать его в пути к базе данных в реальном времени? - PullRequest
0 голосов
/ 27 февраля 2019

Я пытаюсь создать кнопку «Мне нравится», которая работает следующим образом: когда пользователь нажимает кнопку «Мне нравится», я использую идентификатор пользователя, чтобы добавить значение «Мне нравится» в моей базе данных в реальном времени.В моем проекте также используется Firestore, и я хочу использовать эти данные для создания пути к новому «подобию» в базе данных реального времени.

Вот как я получаю свой идентификатор документа из Firestore для последующего построения пути к базе данных реального времени..

private FirebaseAuth mAuth;
 FirebaseUser currentUser;
 private FirebaseFirestore db = FirebaseFirestore.getInstance();

FirebaseDatabase database = FirebaseDatabase.getInstance();
private DatabaseReference LikesRef;


int CountLike;
private String currentUserI;
Boolean cheker = false;

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_anu_detals);
        mAuth = FirebaseAuth.getInstance();
        currentUserI = mAuth.getCurrentUser().getUid();

       final String PostKey = db.collection("Anu").document().getId();


       LikesRef = FirebaseDatabase. getInstance().getReference().child("Like");

Вот кнопка для добавления лайка.Если человек нажмет еще раз, я удалю currentuser из базы данных и буду считать «неприязнь».

 bt_like.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        cheker = true;
        LikesRef.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                if (cheker.equals(true)) {
                    if (dataSnapshot.child(PostKey).hasChild(currentUserI)) {
                        LikesRef.child(PostKey).child(currentUserI).removeValue();
                        likecheker = false;
                    }
                    else
                        {
                        LikesRef.child(PostKey).child(currentUserI).setValue(true);
                        cheker = false;
                    }
                }
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });


    }

});

Я не получаю никаких ошибок, но данные (идентификатор документа и currentuser)) не собирается в базу данных в реальном времени.Как получить ссылку / идентификатор из Firestore для использования в базе данных реального времени?

Данные в базе данных реального времени

Данные в Firestore

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