gpt4 book ai didi

firebase - 在 Firestore 中为文档 ID 自定义对象建模的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-02 19:23:42 25 4
gpt4 key购买 nike

假设我有一组“用户”,并且很高兴他们的 ID 是生成的 Firestore documentId,例如:

Users Collection
GENERATED_FIRESTORE_ID1:
name: "User 1 name"
...: etc.
GENERATED_FIRESTORE_ID2:
name: "User 2 name"
...: etc."

我正在添加它们,并使用自定义对象检索它们(我目前正在使用Android,但我想这个问题更普遍)。我不想在文档中出现额外的“id”字段,只需使用 document.getId() 方法获取生成的 firestore ID。

是否有正确的方法将 POJO 映射为没有单独的 ID 字段,但在查询时将其设置为应用程序使用?我使用 @Exclude 注释来执行此操作,如下所示:

public class User {

// as a side question, do I need @exclude on the field or just the getter?
@Exclude
String uId;

String name;
String email;
//... additional fields as normal

public User() {
}

@Exclude
public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.displayName = name;
}

//... etc. etc.

}

然后我创建 User 对象并设置其 ID,如下所示:

 for (DocumentSnapshot doc : documentSnapshots) {
User user = doc.toObject(User.class);
user.setId(doc.getId());
users.add(user );
}

这工作正常,如果这确实是这样的话,我深表歉意,但我是 FireStore 的新手(我很喜欢它)并且想确保我做得正确。我只是想知道是否有一种方法可以让这一切都是自动的,无需@Exclude,然后在 doc.toObject(MyCustomObject.class)

之后手动设置 ID

最佳答案

现在有一个注释 -

您可以简单地使用

@DocumentId
字符串uID

https://firebase.google.com/docs/reference/android/com/google/firebase/firestore/DocumentId.html

关于firebase - 在 Firestore 中为文档 ID 自定义对象建模的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48621586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com